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

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

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

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

21.11.2012, 01:05. Просмотров 913. Ответов 20
Метки нет (Все метки)

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

Записать в файл несколько строк, а затем записать несколько строк из этого файла в другой - C++
Заранее создать текстовый файл 1.txt и записать в него несколько строк текста. Программа должна получить из него второй файл 2.txt, в...

Как записать несколько массивов, каждый в свой файл? - C++
Я недавно спрашивал здесь, как записать в файл. Мне подсказали. Вот такой вариант работает: #include <iostream> using namespace std; ...

Создать текстовый файл in.txt, куда записать несколько строк. Найти номер самой короткой строки - C++
1.Создать текстовый файл in.txt, куда записать несколько строк. Найти номер самой короткой строки. Буду благодарен ..

записать несколько элементов в вектор сразу, как в массиве - C++
Добрый день, форум. Возможно ли в векторе записать несколько элементов одним разом, как в массиве? Например: массив: int massive =...

Как записать команду в консоль windows несколько раз? - C++
Запускаю консоль в цикле, так: for(int k=0;k<=10;k++){ system ("start cmd"); } как мне каждый раз. в открытой консоли,...

как записать в переменную символьного типа (думерный массив) несколько строк, после инициализации этой переменной? - C++
как записать в переменную символьного типа (думерный массив) несколько строк, после инициализации этой переменной? тоесть при...

20
MrGluck
Модератор
Эксперт CЭксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,017
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; // возвращаем поток
}
0
CAJI0
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 13
21.11.2012, 16:07  [ТС] #3
а как без класса?
мы еще не учили их(
0
MrGluck
Модератор
Эксперт CЭксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,017
21.11.2012, 19:08 #4
Цитата Сообщение от CAJI0 Посмотреть сообщение
а как без класса?
мы еще не учили их(
Самое время начать. Все-таки основы объекто-ориентированного программирования.
0
HidForce
56 / 56 / 13
Регистрация: 17.11.2012
Сообщений: 1,602
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;
}
0
MrGluck
Модератор
Эксперт CЭксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,017
21.11.2012, 19:15 #6
C++
1
ofstream fout("D:\\test.txt");
ссылки на файл должны быть не абсолютными
И в C++ для винды реализована библиотека <clocale>, С-шные танцы вокруг CharToOem не нужны.
Да и объект надо формировать, а не распиливать имя, фамилию и возраст по составляющим, имеющим в качестве связывающего звена лишь индекс массивов.
0
HidForce
56 / 56 / 13
Регистрация: 17.11.2012
Сообщений: 1,602
21.11.2012, 19:32 #7
Цитата Сообщение от MrGluck Посмотреть сообщение
И в C++ для винды реализована библиотека <clocale>, С-шные танцы вокруг CharToOem не нужны.
И как же мне с помощью <clocale> реализовать запись программой русских символов во внешем файле?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,017
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;
}
не?
0
HidForce
56 / 56 / 13
Регистрация: 17.11.2012
Сообщений: 1,602
21.11.2012, 19:42 #9
MrGluck, согласен, что <clocale> позволяет правильно отображать в консоли русский язык, но это не основная проблема! Для меня проблематичным местом стала перекодировка русских символов во внешнем файле: вместо текста отображались кракозябры. Для устранения этой проблемы я и использовал CharToOem!
0
MrGluck
Модератор
Эксперт CЭксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,017
21.11.2012, 19:46 #10
Цитата Сообщение от HidForce Посмотреть сообщение
MrGluck, согласен, что <clocale> позволяет правильно отображать в консоли русский язык, но это не основная проблема! Для меня проблематичным местом стала перекодировка русских символов во внешнем файле: вместо текста отображались кракозябры. Для устранения этой проблемы я и использовал CharToOem!
Проблема в винде кодировке вашего блокнота
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
21.11.2012, 19:46 #11
MrGluck, какой здесь смысл в перегрузке операторов?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,017
21.11.2012, 19:47 #12
Как в файл записать несколько сточек?
0
HidForce
56 / 56 / 13
Регистрация: 17.11.2012
Сообщений: 1,602
21.11.2012, 19:51 #13
Цитата Сообщение от MrGluck Посмотреть сообщение
Проблема в винде кодировке вашего блокнота
Возможно, но не факт, что у пользователя будет стоять нужная кодировка, а CharToOem дает возможность правильно отображать русский без всяких изменений кодировки!
И тем более в Notepad++ я несколько раз изменял кодировку. Эффекта 0!
0
MrGluck
Модератор
Эксперт CЭксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,017
21.11.2012, 19:58 #14
Цитата Сообщение от HidForce Посмотреть сообщение
Возможно, но не факт, что у пользователя будет стоять нужная кодировка, а CharToOem дает возможность правильно отображать русский без всяких изменений кодировки!
И тем более в Notepad++ я несколько раз изменял кодировку. Эффекта 0!
не факт, что у пользователя будет стоять Linux, а UTF-8 везде прокатит
Как в файл записать несколько сточек?
Вот кстати, для блокнота вариант (обратите внимание на шрифт):
Как в файл записать несколько сточек?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,017
21.11.2012, 20:04 #15
Цитата Сообщение от go Посмотреть сообщение
MrGluck, какой здесь смысл в перегрузке операторов?
дабы юзать конструкцию типа
C++
1
2
Student s("Иван", "Петрович", ...);
std::cout<< s;
Удобно и уж куда лучше метода void print() в классе.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2012, 20:04
Привет! Вот еще темы с ответами:

создать файл 1.part и записать в него первые x элементов массива. После чего, создать второй файл 2.part, куда записать оставшиеся в массиве элементы. - C++
Не могу понять почему не работает вот этот кусок текста. ofstream q (&quot;1.part&quot;); for (int i=0; i&lt;10; ++i) { q &lt;&lt; mas ; ...

Как записать класс в файл? - C++
Вот допустим есть класс class LOL { private: bool h; int s; public: LOL(int s,bool h) {

Как записать в файл класс? - C++
class _someclass{ public: ... } class _mainclass{ piblic: _someclass *sc; int n;//размер\количество sc } ...

Как записать вектор в файл? - C++
Как записать вектора в файл? Вектор содержит тип long long. Записать в одну строчку в виде одного большого числа. ofstream out(imy3);...


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

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

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