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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
CAJI0
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 13
#1

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

03.12.2012, 02:00. Просмотров 392. Ответов 5
Метки нет (Все метки)

Задание: Создать прогу, которая сохраняет информацию введенную с клавиатуры: ФИО/ТЕЛ/ВОЗРАСТ в файл,после этого прочитать информацию с файла и вывести на экран.

Записать построчечно каждого студента у меня получилось но вот считать студентов построчечно не получается.
Покажите пожалуйста как в цикле вывести данные про каждого студента на экран.
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++
для каждой строки файла удалить среднее слово. результат записать в файл

Переписать все цифры каждой строки файла в конец строки - C++
Содержимое текстового файла INPUT.TXT, разделенного на строки, переписать за один проход по файлу в текстовый файл OUTPUT.TXT, перенося при...

В конец каждой строки текстового файла дописать количество символов этой строки - C++
Помогите, нужно : &quot;В конец каждой строки текстового файла дописать количество символов этой строки&quot;. Получается только в начало, не знаю...

Написать программу копирования файла. В конец каждой строки файла дописать количество пробелов в строке - C++
Чтение происходит блоками. Обработать ошибки Я пока просто смогла скопировать один файл в другой, а как добавить количество пробелов...

Прочитать первые 10 символов каждой строки из файла - C++
Мне нужно прочитать первые 10 символов каждой строки из файла. Может функция какая есть, чтобы определенное количество символов строки из...

Запись каждой строки файла в свой массив - C++
Есть файл, там допустим вот так: 1 2 3 4 5 6 7 8 9 9 Первую строку записать хочу в один массив, вторую во второй, хочу через...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
vua72
415 / 415 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
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
5417 / 4813 / 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
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.12.2012, 22:05 #6
Не нужно записывать память под структурой, а потом это читать. Записывайте и читайте поля структуры. Запись, как у вас в коде, чтение, как у меня (читать в поля структуры).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2012, 22:05
Привет! Вот еще темы с ответами:

Удалить из каждой строки файла первые K символов - C++
Всем привет! Вообщем есть задачка Дано целое число K и текстовый файл. Удалить из каждой строки файла первые K символов (если длина...

Для каждой строки файла удалить короткое слово - C++
Для каждой строки файла удалить короткое слово. Результат записать в файл. FILE *f1,*f2; f1=fopen(&quot;F1.txt&quot;,&quot;rt&quot;); ...

Для каждой строки файла переставить первое и среднее слово - C++
Помогите пожалуйста!!! не знаю с чего начать... необходимо для каждой строки файла переставить первое и среднее слово. Результат...

Записать в файл максимальные из чисел каждой строки исходного файла - C++
В текстовом файле input.txt содержится несколько строк , в каждой из которых имеются символы-цифры. Записать в файл output.txt построчно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.12.2012, 22:05
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru