C++ czytanie całej lini z pliku?
Ostatnio zmodyfikowano 2015-06-11 00:13
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;/
|
|
akwes |
» 2015-06-10 16:28:08 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++ Obsługa plików. W tym kursie również odnajdziesz odpowiedź na nurtujące Cię pytanie. |
|
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ć |
|
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: Strumienie i pliki |
|
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? |
|
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 ;-) |
|
« 1 » |