我是一个完整的C ++新手(Python是我所知道的),我正在试图弄清楚我做错了什么。本教程向我展示了如何输出文本文件(http://www.cplusplus.com/doc/tutorial/files/)
// reading a text file
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main () {
string line;
ifstream myfile ("example.txt");
if (myfile.is_open())
{
while ( myfile.good() )
{
getline (myfile,line);
cout << line << endl;
}
myfile.close();
}
else cout << "Unable to open file";
return 0;
}
然后当我尝试应用它时,它会给我一个分段错误
// basic file operations
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
string WriteTXT( string DATA , string F_NAME)
{
ofstream myfile;
myfile.open (F_NAME.c_str());
myfile << DATA;
myfile.close();
}
string ReadTXT( string F_NAME )
{
string line;
ifstream myfile (F_NAME.c_str());
if (myfile.is_open())
{
while ( myfile.good() )
{
getline (myfile,line);
cout << line << endl;
}
myfile.close();
}
else cout << "Unable to open file";
}
int main () {
WriteTXT("12345","example.txt");
ReadTXT("example.txt");
return 0;
}
究竟是什么?
答案 0 :(得分:0)
你需要:
// returns void
void WriteTXT( string DATA , string F_NAME)
// ...
// returns void
void ReadTXT( string F_NAME )
因为您没有从这些功能返回任何内容。如果使用-Wall
和-Werror
进行编译,则可以防止出现此类常见问题。
答案 1 :(得分:0)
使return
类型的函数void
然后它将起作用。
答案 2 :(得分:0)
将返回类型设为无效
void WriteTXT( string DATA , string F_NAME)
void ReadTXT( string F_NAME )
然后它将按预期工作。