【发布时间】:2013-11-21 09:01:55
【问题描述】:
我有以下代码...
http://pastebin.com/KjzArbcg ^ 完整代码
//the issue - this throws a Segmentation fault
char *inname1 = "HW11F1.txt";
cin >> inname1;
ifstream infile1(inname1);
任务如下.. “编写一个程序,将两个文件中的数字合并,并将所有数字写入一个 第三个文件。每个输入文件都包含一个 int 类型的数字列表,这些数字从 最小到最大。程序运行后,输出文件将包含所有 两个输入文件中的数字按从小到大的顺序排列在一个较长的列表中。 您的程序应该定义一个使用两个输入文件流调用的函数和 输出文件流作为三个参数。”
我让它适用于默认文件名就好了,一切似乎都按我想要的方式工作。问题是当我尝试做 cin >> inname1;
程序因分段错误(核心转储)而崩溃。知道我做错了什么,或者如何解决它?提前致谢。
【问题讨论】:
-
使用
std::string而不是char*。 -
请直接在问题中发布您的代码,如果程序相当长,请去掉所有不必要的内容,直到您得到一个最小的测试用例,我们可以复制并复制以查看错误。 (出于某种原因,pastebin 无论如何都被我阻止了)。
-
@KirilKirov
or可能很少使用,但它和||一样标准。 -
@KirilKirov 不,不是。它仍然是完全合法的,没有被弃用。
-
@user2993567 不,这不好。根据 Stack Overflow 政策,所有问题和答案都应该是独立的。外部链接可用于非必要的补充材料,但没有它们,每个帖子仍然有意义。
标签: c++ arrays string char cin