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

Как в файл записать несколько сточек? - C++

Восстановить пароль Регистрация
 
 
CAJI0
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 13
21.11.2012, 01:05     Как в файл записать несколько сточек? #1
Нужно написать программу которая будет записывать в файл ФИО и возраст студента (на каждую новую строчку новый студен). Помогите пожалуйста с кодом.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2012, 01:05     Как в файл записать несколько сточек?
Посмотрите здесь:

C++ как записать в переменную символьного типа (думерный массив) несколько строк, после инициализации этой переменной?
Как записать несколько массивов, каждый в свой файл? C++
C++ записать несколько элементов в вектор сразу, как в массиве
C++ Как записать картинку в файл
C++ создать файл 1.part и записать в него первые x элементов массива. После чего, создать второй файл 2.part, куда записать оставшиеся в массиве элементы.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,427
21.11.2012, 02:57     Как в файл записать несколько сточек? #2
В классе:
C++
1
2
3
4
5
6
7
8
friend std::ostream& operator<< (std::ostream &output, const Student &s) // объявляем дружественную функцию
{
    output<< "Name: "<< s._name<< std::endl // формируем поток 
             << "Surname: "<< s._surname<< std::endl
             << "Patronymic: "<< s._patronymic<< std::endl
             << "Age: "<< s._age<< std::endl;
    return output; // возвращаем поток
}
CAJI0
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 13
21.11.2012, 16:07  [ТС]     Как в файл записать несколько сточек? #3
а как без класса?
мы еще не учили их(
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,427
21.11.2012, 19:08     Как в файл записать несколько сточек? #4
Цитата Сообщение от CAJI0 Посмотреть сообщение
а как без класса?
мы еще не учили их(
Самое время начать. Все-таки основы объекто-ориентированного программирования.
HidForce
54 / 54 / 13
Регистрация: 17.11.2012
Сообщений: 1,118
21.11.2012, 19:10     Как в файл записать несколько сточек? #5
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
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <fstream>
#include <windows.h>
 
using namespace std;
 
char bufRus[256];
 
char* Rus(const char* text) {
      CharToOem(text, bufRus);
      return bufRus;
      }
 
int main()
{
    setlocale (LC_ALL, "RUSSIAN");
 
    ofstream fout("D:\\test.txt");
 
    char fio[21];
    int vozrast;
 
    cout << "Введите ФИО студента: " << endl;
    cin.getline (fio, 20);
    OemToCharA(fio,fio);
 
    cout << "Введите возраст студента: " << endl;
    cin >> vozrast;
 
    fout << "ФИО студента: " << fio << endl;
    fout << "Возраст студента: " << vozrast << endl;
 
 fout.close();
 
   return 0;
}
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,427
21.11.2012, 19:15     Как в файл записать несколько сточек? #6
C++
1
ofstream fout("D:\\test.txt");
ссылки на файл должны быть не абсолютными
И в C++ для винды реализована библиотека <clocale>, С-шные танцы вокруг CharToOem не нужны.
Да и объект надо формировать, а не распиливать имя, фамилию и возраст по составляющим, имеющим в качестве связывающего звена лишь индекс массивов.
HidForce
54 / 54 / 13
Регистрация: 17.11.2012
Сообщений: 1,118
21.11.2012, 19:32     Как в файл записать несколько сточек? #7
Цитата Сообщение от MrGluck Посмотреть сообщение
И в C++ для винды реализована библиотека <clocale>, С-шные танцы вокруг CharToOem не нужны.
И как же мне с помощью <clocale> реализовать запись программой русских символов во внешем файле?
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,427
21.11.2012, 19:36     Как в файл записать несколько сточек? #8
Цитата Сообщение от HidForce Посмотреть сообщение
И как же мне с помощью <clocale> реализовать запись программой русских символов во внешем файле?
C++
1
2
3
4
5
6
7
8
9
10
#include <fstream>
#include <clocale>
 
int main()
{
    setlocale(LC_ALL, "");
    std::ofstream o("1.txt");
    o<< "Привет, мир";
    return 0;
}
не?
HidForce
54 / 54 / 13
Регистрация: 17.11.2012
Сообщений: 1,118
21.11.2012, 19:42     Как в файл записать несколько сточек? #9
MrGluck, согласен, что <clocale> позволяет правильно отображать в консоли русский язык, но это не основная проблема! Для меня проблематичным местом стала перекодировка русских символов во внешнем файле: вместо текста отображались кракозябры. Для устранения этой проблемы я и использовал CharToOem!
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,427
21.11.2012, 19:46     Как в файл записать несколько сточек? #10
Цитата Сообщение от HidForce Посмотреть сообщение
MrGluck, согласен, что <clocale> позволяет правильно отображать в консоли русский язык, но это не основная проблема! Для меня проблематичным местом стала перекодировка русских символов во внешнем файле: вместо текста отображались кракозябры. Для устранения этой проблемы я и использовал CharToOem!
Проблема в винде кодировке вашего блокнота
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
21.11.2012, 19:46     Как в файл записать несколько сточек? #11
MrGluck, какой здесь смысл в перегрузке операторов?
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,427
21.11.2012, 19:47     Как в файл записать несколько сточек? #12
Как в файл записать несколько сточек?
HidForce
54 / 54 / 13
Регистрация: 17.11.2012
Сообщений: 1,118
21.11.2012, 19:51     Как в файл записать несколько сточек? #13
Цитата Сообщение от MrGluck Посмотреть сообщение
Проблема в винде кодировке вашего блокнота
Возможно, но не факт, что у пользователя будет стоять нужная кодировка, а CharToOem дает возможность правильно отображать русский без всяких изменений кодировки!
И тем более в Notepad++ я несколько раз изменял кодировку. Эффекта 0!
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,427
21.11.2012, 19:58     Как в файл записать несколько сточек? #14
Цитата Сообщение от HidForce Посмотреть сообщение
Возможно, но не факт, что у пользователя будет стоять нужная кодировка, а CharToOem дает возможность правильно отображать русский без всяких изменений кодировки!
И тем более в Notepad++ я несколько раз изменял кодировку. Эффекта 0!
не факт, что у пользователя будет стоять Linux, а UTF-8 везде прокатит
Как в файл записать несколько сточек?
Вот кстати, для блокнота вариант (обратите внимание на шрифт):
Как в файл записать несколько сточек?
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,427
21.11.2012, 20:04     Как в файл записать несколько сточек? #15
Цитата Сообщение от go Посмотреть сообщение
MrGluck, какой здесь смысл в перегрузке операторов?
дабы юзать конструкцию типа
C++
1
2
Student s("Иван", "Петрович", ...);
std::cout<< s;
Удобно и уж куда лучше метода void print() в классе.
CAJI0
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 13
22.11.2012, 18:09  [ТС]     Как в файл записать несколько сточек? #16
как же записать несколько строчек в файл при помощи цикла?
если можна покажите в коде.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
22.11.2012, 18:18     Как в файл записать несколько сточек? #17
Цитата Сообщение от MrGluck Посмотреть сообщение
Самое время начать. Все-таки основы объекто-ориентированного программирования.

Не по теме:

Зачем отвечать не по теме? Тем более, что задание никак не связано с ООП. и автор просто не стремится изучать данную сомнительную парадигму программирования.



Добавлено через 56 секунд
Цитата Сообщение от MrGluck Посмотреть сообщение
Удобно и уж куда лучше метода void print() в классе.
о классах здесь говорит только MrGluck, а задание про строчку с фамилией студента char[] name="Vasya";
Как в файл записать несколько сточек?

Не по теме:

стРочек

CAJI0
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 13
22.11.2012, 18:19  [ТС]     Как в файл записать несколько сточек? #18
в универе мы идем за программой. ооп будет только в следуеещем семестре(
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,427
22.11.2012, 19:34     Как в файл записать несколько сточек? #19
Kuzia domovenok, ты считаешь, что знаний, даваемых в университете хватит для устройства на работу? Не в обиду преподавателям, но разве программирование не строится на самообучении?
Если брать лишь то, что дают - то останешься нисчем. Можно реализовать массивы имен, фамилий, дат и т.д. и косвенно связывать их общим индексом, но неужели самим неохота смоделировать объект?
в универе мы идем за программой
Хочешь изучить С++ - плюнь на программу и иди вперед.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2012, 19:35     Как в файл записать несколько сточек?
Еще ссылки по теме:

C++ Как записать string в файл?
C++ Как записать команду в консоль windows несколько раз?
C++ Как записать класс в файл?

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

Или воспользуйтесь поиском по форуму:
CAJI0
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 13
22.11.2012, 19:35  [ТС]     Как в файл записать несколько сточек? #20
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
#include <cstdlib>
#include <iostream>
#include<conio.h>
#include<string>
 
using namespace std;
 
void main()
{ 
setlocale(LC_ALL, "Russian");
    string SecondName, FirstName, MiddleName;
int Age;
int n;
FILE* f = fopen("output.txt", "w");
 cout << "How many students? "; 
 cin >> n;
 for (int i=1; i<=n; i++){
     cout << "Какая фамилия " << i << "-ого студента? "; 
   cin>> SecondName;
   cout << "Какое имя " << i << "-ого студента? "; 
   cin>> FirstName;
   cout << "Какое отчество " << i << "-ого студента? "; 
  cin>>MiddleName;
   cout<<"Какой возвраст "<<i<<"-ого студента? " ;
   cin>>Age;
    
    fprintf(f, "%s %s %s %d\n", SecondName.c_str(), FirstName.c_str(), MiddleName.c_str(), Age);
    
  }
  fclose(f );
 
getch();
}
вот такое получилось
могли бы показать на этом коде как записывать русские буквы в файле.
а то одни иероглифы получаются(
Yandex
Объявления
22.11.2012, 19:35     Как в файл записать несколько сточек?
Ответ Создать тему
Опции темы

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