【发布时间】:2016-11-09 03:46:59
【问题描述】:
所以我对 C++ 非常陌生,我试图从命令行读取文件,然后将其移动到 2D 字符数组中,但每当我运行程序时,我都会收到此错误:“终止到期发出信号:分段故障 (11)"。有谁知道为什么?如果有人有任何代码建议,我将不胜感激!
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
const int MAX_ROW = 24;
const int MAX_COL = 80;
int main(int argc, char *argv[])
{
int row = 0, col = 0;
string line;
char textArray[MAX_ROW][MAX_COL];
ifstream inFile;
inFile.open(argv[0]);
getline(inFile, line);
while(line.length() > 0)
{
for(int i = 0; i < line.length(); i++)
textArray[row][i] = line[i];
row++;
if(line.length() > col)
col = line.length();
getline(inFile, line);
}
inFile.close();
return 0;
}
【问题讨论】:
-
Debug THEN post to SO 一旦你对正在发生的事情有了更好的了解。从
inFile.open(argv[0]);开始 - 没有错误检查,您确定这是您要打开的文件吗? -
我没有看到任何可以防止您溢出数组边界的范围测试。
标签: c++ arrays multidimensional-array fstream