Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

C++ czytanie całej lini z pliku?

Ostatnio zmodyfikowano 2015-06-11 00:13
Autor Wiadomość
dekros
Temat założony przez niniejszego użytkownika
C++ czytanie całej lini z pliku?
» 2015-06-10 16:17:17
Witam mam pytanko próbuje szczytać tak zapisane linie w pliku

mama;tata
syn;corka
dziadek;babcia


każde wygląda tak że jest oddzielona ";"
wiem jak otworzyć plik itp
tylko jak to pobrac próbowałem
FILE *p;
p = fopen("dane.txt","rt");
fscanf(p,"%c;%c",t.pierwszy,t.drugi);
wywala błąd;/
P-133428
akwes
» 2015-06-10 16:28:08
C/C++
FILE * p;
p = fopen( "dane.txt", "rt" );
fscanf( p, "%c;%c", t.pierwszy, t.drugi );

To jest kod typowy dla C a nie dla C++.

Zobacz jak wczytać plik zgodnie z duchem C++ » Kurs C++Obsługa plików lekcja. W tym kursie również odnajdziesz odpowiedź na nurtujące Cię pytanie.
P-133429
dekros
Temat założony przez niniejszego użytkownika
» 2015-06-10 16:36:04
tylko tutaj chodzi  o to że mam to do szkoł i musze jak to nazwałeś "typowy c" pisać
P-133430
SeaMonster131
» 2015-06-10 16:50:23
i musze jak to nazwałeś "typowy c" pisać
C++ czytanie całej lini z pliku?
To temat też trzeba lepiej nazywać.

Tutaj masz wytłumaczone wszystkie potrzebne funkcje:
» standard CStrumienie i pliki
P-133431
dekros
Temat założony przez niniejszego użytkownika
» 2015-06-10 19:32:34
ok mam coś takiego

#include <iostream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;


struct dane
{
    char pytanie[100];
    char prawidlowa[30];
    bool uzyte;
};
int main()
{

    int ile=3;
    int ilosc;
    dane *pytania;
    pytania =(dane*) malloc(sizeof(dane)*ile);
    FILE *p;
    p = fopen("pytania.txt","rt");
    for(int i=0; i<ile; i++)
    {
        fscanf(p,"%s;%s",pytania[i].pytanie,pytania[i].prawidlowa);
        pytania[i].uzyte=true;
        ilosc++;
    }
    for(int i=0; i<ile; i++)
    {
        cout << " odp: "  << pytania[i].pytanie << pytania[i].prawidlowa << " Uzyte: " << pytania[i].uzyte <<endl;
    }

    fclose(p);
    free(pytania);

    return 0;
}

tylko mam taki problem że jak sciągam z pliku %s to mi się cała tablica zapełnia a jak zrobić by sciągnał tylko to co jest przed ";" i tak samo do prawidłowa sciągnał tylko do końca lini?
P-133433
Roofy5
» 2015-06-11 00:13:06
Możesz użyć bodejze funkcji fgets - ona zapisuje pojedyncze zdanie w buforze(tablicy) a później ta tablice przelecieć jakąś własną funkcją ktora znajdzie średniki ;-)
P-133440
« 1 »
  Strona 1 z 1