将文本文件读取到char数组

时间:2014-12-07 10:26:12

标签: c++ arrays output

我试图将txt文件读取到我的char数组[9] [9]。 我尝试了其他主题的一些提示,但它们没有用。

所以,我有一个像这样的示例file.txt,我保存了自己,像这样: 它是9x9

123------

---456---

------789

等等,这里的空格是''而不是' - '。 当我试图读取它并再次将它放到我的数组中时,它显示如下:

123456789。

这是我的代码:

system("cls");
ifstream sudoku_read;
string name_read;

cout << "Put a text name: "
getline(cin, name_read);
sudoku_read.open(name_read, ios::in | ios::binary);

for (int i = 0; i < 9;i++)
{
    for (int j = 0; j < 9; j++)
    {

        sudoku_read >> tab[j][i].number;

    }
}

我也尝试了noskipws,但它无法正常工作。

1 个答案:

答案 0 :(得分:0)

char crs[100];
unsigned vindex = 0;
std::stringstream ss;
ss = sudoku_read.rdbuf();
std::string flstr = ss.str();
for(int i=0; i<strlen(flstr); i++){
    if(flstr[i] != ' '){
      crs[vindex++] = flstr[i];
    }
}
vindex = 0;
for (int i = 0; i < 9;i++)
{
    for (int j = 0; j < 9; j++)
    {
        tab[j][i].number = crs[vindex++] - '0'; //watch out it should be [i][j] by convention
    }
}

我按惯例设置crs&#39;由于未指定,因此大小为100。

假设: