2013-03-17 2 views
-1

Этот код только считывает первую строку в текстовом файле. Как я могу читать несколько строк в одном текстовом файле ?. Спасибо.
LNAME Fname имеет средний балл 88,0
LName имя_файла имеет средний балл 90,0Как я могу прочитать несколько строк в одном текстовом файле?

#include <stdio.h> 
#include <stdlib.h> 
struct stud{ 
char fname[21]; 
char lname[21]; 
float gpa; 
} str; 

int getStudData(struct stud *current_ptr); // struct function format 

int main(void){ 
struct stud str; 
getStudData(&str); 

printf("Last Name: %s\n First Name: %s\n GPA: %.2f\n" 
    , str.fname, str.lname, str.gpa); 
return 0; 
} 

int getStudData(struct stud *current_ptr){ 

FILE *studFile; // declaring a pointer file variable 

studFile = fopen("StudData.txt", "r"); // format for fopen; file-variable = fopen(file_name, mode); 

if (studFile == NULL){ 
    printf("Error: Unable to open StudData.txt file\n"); //test for error 
} 
else { 
    fscanf(studFile, "%20s %20s has a GPA of %f\n" 
     , current_ptr->fname, current_ptr->lname, &current_ptr->gpa); 
    // fscanf(file, format, &parameter-1, ...) 

    fclose(studFile); // The function fclose will close the file. 
} 
return 0; 
} 

ответ

0

Чтобы прочитать несколько строк из входного файла, как правило, общие для указания конца строки (EOL) символов. В большинстве случаев это символ новой строки ('\ n'), а чтение из входного файла устанавливается как цикл. Если нет необходимости читать строки, STOP, read-a-line, STOP и повторять ... вы можете создать структуру цикла, чтобы читать файл по очереди, пока не будет закончен конец файла (EOF). достиг.

Код ниже читает только одну строку и затем закрывает файл.

fscanf(studFile, "%20s %20s has a GPA of %f\n" 
     , current_ptr->fname, current_ptr->lname, &current_ptr->gpa); 
    // fscanf(file, format, &parameter-1, ...) 

    fclose(studFile); // The function fclose will close the file 
+0

Итак, какой цикл while я должен использовать в этом коде после комментирования fclose ?. Спасибо. – c0ldhand

+0

Я бы предложил что-то вроде решения, размещенного здесь ... [Пример C++ с использованием ] (http://stackoverflow.com/questions/21647/reading-from-text-file-until-eof-repeats-last-line) – jarrodparkes

+0

Я ценю ваш вход. Я нашел решение. Спасибо. – c0ldhand

Смежные вопросы