C++ fstream文件为空(简单小代码)
我编写了这个简单的代码来尝试这个C++ fstream文件为空(简单小代码),c++,visual-studio-2010,visual-c++,C++,Visual Studio 2010,Visual C++,我编写了这个简单的代码来尝试这个fstream文件(“…txt”),但是文件保持为空! 有人能帮忙吗? (请注意,我有一个“自制”头文件,其中包括我通常使用的所有文件和名称空间) 这个小程序应该能够处理File.txt中的所有内容,然后让您有机会在文件中键入新行,以中断使用break的进程。但就像我说的,文件是空的 #include <myHead.h> int main() { string line; int i; fstream myFile ("Fi
fstream文件(“…txt”)
,但是文件保持为空!
有人能帮忙吗?
(请注意,我有一个“自制”头文件,其中包括我通常使用的所有文件和名称空间)
这个小程序应该能够处理File.txt中的所有内容,然后让您有机会在文件中键入新行,以中断使用break的进程。但就像我说的,文件是空的
#include <myHead.h>
int main()
{
string line;
int i;
fstream myFile ("File.txt");
if (myFile.is_open())
{
while (getline(myFile,line))
{
cout << line << "\n";
}
line = "0";
for(line;line!="break";cin >> line)
{
if(line != "break")
myFile << line;
}
myFile.close();
}
else
cout << "error, File.txt cannot be opened!";
getch();
return 0;
}
#包括
int main()
{
弦线;
int i;
fstream myFile(“File.txt”);
如果(myFile.is_open())
{
while(getline(myFile,line))
{
(电话线)
{
如果(行!=“断开”)
myFile读取完文件后,文件处于“已到达文件结尾”状态,这是不好的
您需要在写入(追加)之前重置流状态。这是通过流方法clear()
完成的
此外,您可能希望显式地将文件作为输入和输出打开:ios::in | ios::out
即使已经回答了,我想指出一个更好的结束输入的选项。如果您这样做:
#include <string>
#include <iostream>
#include <fstream>
int main(void)
{
std::fstream file("file");
std::string buf;
if (file.is_open())
{
std::cout << "READ:" << "\n\n";
while (getline(file, buf))
{
std::cout << buf << "\n";
}
file.clear();
std::cout << '\n' << "WRITE:" << "\n\n";
while (getline(std::cin, buf))
{
file << '\n' << buf;
file.seekp(0, file.end);
file.seekg(0, file.end);
}
file.close();
}
else
{
std::cout << "error, file could not be opened.";
}
return 0;
}
#包括
#包括
#包括
内部主(空)
{
std::fstream文件(“文件”);
std::字符串buf;
if(file.is_open())
{
std::我有点恼火。myFile.close()RAIII成语意思是<代码> FStuts< /Cord>对象将关闭并处理资源。OK THX。有任何理由吗?我知道它总是没有用,但我觉得它只是好的关闭,不是吗?研究C++ ++ RAIN习惯。哦,解决你的问题是你不冲洗FSRATH。我会加个回答。谢谢!成功了!但是为什么ios::in和ios::out?这是fstream的标准,不是吗?还有一个小问题:现在当我写例如:你好,你好吗?程序“替换”空格中用enter键,所以只有一个单词,没有句子,但我不想用hello,_你好吗?哦,我只需要用getline。谢谢你的帮助,andre也是!主题可以关闭。我说,ios::in | ios::out
将是一种明确的文件模式,让读者知道你正在打开文件进行输入和输出输出。有些人可能不记得fstream
默认值是两者都有。显式文本不会损害代码的生成,但会提高可读性。