Operacje na plikach

0

Witam, dawno już nic nie napisałem i ciężko mi poradzić sobie z prostym zadaniem, tak więc proszę o pomoc, treść:
Dany jest plik tekstowy "smerfy.txt". Czytaj z
pliku linia po linii i wyświetl na ekranie te, które nie
zaczynają się od znaku '$'.

2
for line in file
  if !(line startsWith '$')
    putL line
0

Z czym masz problem?

0

Napisałem, żeby czytał linia po linii i nie wiem jak zrobić żeby omijał linijki zaczynające się od $

1

Musisz sprawdzić, czy zaczynają się od $ i, jeśli tak, ominąć je. Zaprezentuj może kod.

0
#include <stdio.h>
#include <stdafx.h>
int main()
{
    char linia[255];
    FILE* plik;
    plik = fopen("smerfy.txt","r");

    while(fgets(linia,255,plik)!=NULL)
    {
        if(fgets(linia,EOF,plik)!='$')
        printf("%s",linia);
    }

    fclose(plik);
    getch();
    return 0;
} 
1
if(fgets(linia,EOF,plik)!='$')

wracamy do dokumentacji: http://en.cppreference.com/w/c/io/fgets oraz do podstaw. W C porównujesz char* i int, w C++ takie coś się nie skompiluje.

Poza tym, obecną linię już wczytałeś. Sprawdź jej pierwszy znak zamiast pobierać następną.

0
 if(linia !='$')

coś takiego?

1

Nie. Zastanów się czym jest linia (tablicą znaków/wskaźnikiem na jej początek) i czym jest '$' (znakiem/liczbą typu int) i jaki sens ma porównywanie tych wartości.

0
Rozwiązanie:
#include <stdio.h>
#include <stdafx.h>
int main()
{
    char linia[255];
    FILE* plik;
    plik = fopen("smerfy.txt","r");

    while(fgets(linia,255,plik)!=NULL)
    {
        if(linia[0] != '$')
        printf("%s",linia);
    }

    fclose(plik);
    getch();
    return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0