我用C ++编写了一个示例程序,它正在崩溃。我不知道为什么会崩溃。任何帮助都将受到高度赞赏。
以下是示例程序:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
string foo(string b)
{
cout << b << endl;
}
int main(int argc, char* argv[])
{
string fileName = argv[1];
ifstream ifile(fileName.c_str(), ios::in);
string line;
while(getline(ifile , line))
cout << line << endl;
ifile.close();
foo("q");
return 0;
}
我传递1.txt作为参数,其中包含以下内容:
a
b
c
我得到的输出是:
a
b
c
q
Segmentation fault
答案 0 :(得分:3)
您将foo()
声明为返回string
对象,但return
中没有foo()
语句,因此返回值不确定,代码string时,>未定义的行为。
如果您不打算return
,那么您需要将返回值声明为void
:
void foo(string b)
答案 1 :(得分:-3)
void foo(string b)
{
cout << b << endl;
return;
}