Я хочу записать постоянную строку в файл с другим блоком введенных данных

0

Я хочу написать постоянную строку в текстовый файл. Я знаю, что это можно сделать, используя operator(<<) put-to operator(<<), но я хочу написать эту постоянную строку в блоке данных, введенных через cin, gets и т.д. Мне это нужно для моего школьного проекта. Пожалуйста, будьте милы и помогите мне. Если вам непонятно, сообщите мне.

cout<<"Enter your name";
gets(name);
cout<<"Enter your roll number";
cin>>rollno;
char string[]="Student of XYZ School";
fout.write((char*)&student,size(student));

Обратите внимание, что строка символов не может быть записана с другими введенными данными, но я хочу, чтобы она была записана в файл только с другими данными.

  • 1
    Тьфу тьфу тьфу Не используйте, gets когда-либо. Это устарело и крайне небезопасно.
  • 0
    Ваш вопрос не имеет особого смысла. Вы не возражаете против разработки?
Теги:
string

1 ответ

0

Если вы уже сделали #include <iostream>, как и должно быть, почему вы используете строки gets() и write() и C-style? Это было бы намного проще, так как это C++, использовать

#include <fstream>

string name;
string rollno;
ofstream outfile;

cout << "Enter your name";
cin >> name;

cout << "Enter your roll number";
cin >> rollno;

string str = "Student of XYZ School";

student.write(outfile);

Вы не сказали, какой тип "студент". В приведенном выше примере я предполагаю, что это его собственный класс. Если это так, то вы можете определить для него функцию-член

Student::write(ofstream &outfile) {

  outfile << "blah blah blah";
  // etc.
}

Независимо от того, что вы делаете, НЕ держите get() в своей программе: он оставляет вашу программу открытой для атаки переполнения буфера. Если вы можете использовать cout, вы можете использовать cin.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню