Форум программистов, компьютерный форум CyberForum.ru

Вывод каждой строки из файла - C++

Восстановить пароль Регистрация
 
CAJI0
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 13
03.12.2012, 02:00     Вывод каждой строки из файла #1
Задание: Создать прогу, которая сохраняет информацию введенную с клавиатуры: ФИО/ТЕЛ/ВОЗРАСТ в файл,после этого прочитать информацию с файла и вывести на экран.

Записать построчечно каждого студента у меня получилось но вот считать студентов построчечно не получается.
Покажите пожалуйста как в цикле вывести данные про каждого студента на экран.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <cstdlib>
#include <iostream>
#include<conio.h>
#include<string>
 
using namespace std;
 
 
int main()
{ 
setlocale(LC_ALL, "Russian");
    string SecondName, FirstName, MiddleName;
int Age;
int n;
int Tel;
FILE* f = fopen("output.txt", "w");
 cout << "Сколько студентов? "; 
 cin >> n;
 for (int i=1; i<=n; i++){
     cout << "Какая фамилия " << i << "-ого студента? "; 
   cin>> SecondName;
   cout << "Какое имя " << i << "-ого студента? "; 
   cin>> FirstName;
   cout << "Какое отчество " << i << "-ого студента? "; 
  cin>>MiddleName;
  cout <<"Какой телефон "<<i<<"-ого студента? ";
  cin >> Tel;
   cout<<"Какой возвраст "<<i<<"-ого студента? " ;
   cin>>Age;
   
    
    fprintf(f, "%s %s %s %d %d\n", SecondName.c_str(), FirstName.c_str(), MiddleName.c_str(), Tel, Age);
    
 }
 
  fclose(f);
    FILE*fr;
 char str[100];
 
fr = fopen("output.txt", "rb");
    while (!feof(fr))
    {   
            fgets(str,  100, fr);
                for(int i=0; i<n;i++){
                if (Age != 0)
                        printf("\nФИО: %s %s %s\nНомер: %d\nВозвраст: %d\n", SecondName.c_str(), FirstName.c_str(), MiddleName.c_str(), Tel, Age);
       
                Age=0;
                }}
    fclose(fr);
 
getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2012, 02:00     Вывод каждой строки из файла
Посмотрите здесь:

переписать содержимое текстового файла в другой текстовый файл,добавляя в начало каждой строки её порядковый номер(с++) C++
C++ Удалить из каждой строки файла первые K символов
C++ Вывод второй строки из файла c++
Прочитать первые 10 символов каждой строки из файла C++
C++ Для каждой строки файла переставить первое и среднее слово
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
03.12.2012, 02:32     Вывод каждой строки из файла #2
Такая задача обычно подразумевает объявление структуры и массива структур, в который это все заносится, тогда и посчитать сможете что-угодно, и вывести.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
struct students {
string SecondName, FirstName, MiddleName;
int Age;
int n;
int Tel;
};
..
students group[10];
... 
group[0].FirstName=""
...
group[0].Tel=""
...
group[9].FirstName="";
...
group[9].Tel="";
и т.д.
CAJI0
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 13
03.12.2012, 03:20  [ТС]     Вывод каждой строки из файла #3
если можна покажите как реализовать это в коде
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.12.2012, 05:14     Вывод каждой строки из файла #4
Цитата Сообщение от CAJI0 Посмотреть сообщение
Покажите пожалуйста как в цикле вывести данные про каждого студента на экран.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
...
FILE *fr;
  char str[100];
  int m;
  
  fr = fopen("output.txt", "r");
   
   for(int i = 0; i < n; i++)
   {
        
        fscanf(fr, "%s", str);
        printf("%s ", str);
        fscanf(fr, "%s", str);
        printf("%s ", str);
        fscanf(fr, "%s", str);
        printf("%s ", str);
        fscanf(fr, "%d", &m);
        printf("%d ", m);
        fscanf(fr, "%d", &m);
        printf("%d\n", m);
        
    }
    
    fclose(fr);
...
CAJI0
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 13
03.12.2012, 13:54  [ТС]     Вывод каждой строки из файла #5
Цитата Сообщение от vua72 Посмотреть сообщение
Такая задача обычно подразумевает объявление структуры и массива структур, в который это все заносится, тогда и посчитать сможете что-угодно, и вывести.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
struct students {
string SecondName, FirstName, MiddleName;
int Age;
int n;
int Tel;
};
..
students group[10];
... 
group[0].FirstName=""
...
group[0].Tel=""
...
group[9].FirstName="";
...
group[9].Tel="";
и т.д.
вот я что-то намудрил с структурами не могу записать нормально и считать данные. Исправте пожалуйста ошибки в коде.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <cstdlib>
#include <iostream>
#include<conio.h>
#include<string>
 
using namespace std;
 
 
int main()
{ 
 
setlocale(LC_ALL, "Russian");
struct students{
    char SecondName[20], FirstName[20], MiddleName[20];
    char  Tel[15];
int  Age;
 
};
int n;
cout << "Сколько студентов? "; 
 cin >> n;
students *list=new students[n],rlist;
FILE *f;
 
 f = fopen("output.txt", "wb");
 for (int i=0; i<=n; i++){
     cout << "Какая фамилия " << i << "-ого студента? "; 
     fflush(stdin);
  gets(list[i].SecondName);
   cout << "Какое имя " << i << "-ого студента? "; 
   fflush(stdin);
   gets(list[i].FirstName);
   cout << "Какое отчество " << i << "-ого студента? "; 
   fflush(stdin);
  gets(list[i].MiddleName);
  cout <<"Какой телефон "<<i<<"-ого студента? ";
  fflush(stdin);
  gets(list[i].Tel);
   cout<<"Какой возвраст "<<i<<"-ого студента? " ;
   fflush(stdin);
  scanf("%d",&list[i].Age);
   
    
       fwrite(list, sizeof(students), n, f);
    
 }
 
  fclose(f);
 
    FILE*fr;
 
fr = fopen("output.txt", "rb");
    while (!feof(fr))
    {   
    
       fread(&rlist, sizeof(students), 1, fr);
  if (rlist.Age != 0)
            printf("\nFIO: %s%s%s\nNumber: %d\nAge: %d\n", rlist.SecondName, rlist.FirstName, rlist.MiddleName,rlist.Tel, rlist.Age);
        rlist.Age = 0;
                }
    fclose(fr);
 
getch();
}
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.12.2012, 22:05     Вывод каждой строки из файла #6
Не нужно записывать память под структурой, а потом это читать. Записывайте и читайте поля структуры. Запись, как у вас в коде, чтение, как у меня (читать в поля структуры).
Yandex
Объявления
03.12.2012, 22:05     Вывод каждой строки из файла
Ответ Создать тему
Опции темы

Текущее время: 12:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru