我的C ++代码有问题。
当我运行此代码时:
.+?:not\(.+?\)
输出应为:
enter your text : alikamel // for example then write it to file data file contains : // file contents
但是我得到了这个:
enter your text : ass // for example and it write it to file then display data file contains : // nothing ??
为什么不显示文件内容,怎么了?
答案 0 :(得分:2)
您的问题是您试图从文件末尾读取。
fstream
拥有一个指向文件中当前位置的指针。
完成写入文件后,该指针指向末尾,准备好下一个写入命令。
因此,当您尝试在不移动指针的情况下从文件读取时,您将尝试从文件的末尾读取。
您需要使用seekg
移至文件的开头以读取所写内容:
file << s;
cout << "\ndata file contains :";
file.seekg(0);
while(getline(file, line))
{
cout << "\n" << line;
}
答案 1 :(得分:1)
我假设文件为空,在这种情况下,您可以执行以下操作
fstream file("TestFile.txt", ios::out);
cout << "enter your text :";
cin >> s; // Take the string from user
file << s; // Write that string in the file
file.close(); // Close the file
file.open("TestFile.txt",ios::in);
cout << "data file contains :" << endl;
while(getline(file, line)) { //Take the string from file to a variable
cout << line << endl; // display that variable
}
file.close();
cin.get();
正如评论中提到的那样...您也可以使用ifstream
和ofstream
以获得更好的打底效果