我正在尝试从标准输入读取输入并在遇到EOF
时停止阅读。我需要将这些值作为整数存储在2x2数组array[i][j]
中。
我正在从单行读取81个数独字符(整数)+另外两个字符(\n
和EOF
),共计83个。
例如:
STDIN -- > 123414292142341......2\n <EOF>
我如何只存储每个array[i][j]
中的数字?当我遇到<EOF>
时停止阅读?
因此,在每9个整数之后,我需要增加j以获得下一行。
我希望在C ++中做到这一点
谢谢!
到目前为止我已尝试过这个
//用83个字符的单行读取(81个数独整数+ \ n和 //将每个整数存储到相应行和列的数组中
#include iostream
using namespace std;
string input_line;
int main()
{
while(cin) {
getline(cin, input_line);
};
return 0;
}
如何将字符串“input_line”标记为整数字符?然后到atoi转换为int,然后最终将它们存储在Sudoku数组中?
好的,谢谢差不多完成了。但我现在继续从'char'转换为'const char *'错误!
#include <iostream>
#include <stdlib.h>
using namespace std;
string input_line;
int main()
{
char buffer[9][9];
int sudoku[9][9];
int v;
cout << "Enter input: " << endl;
cin >> (char*)buffer;
for(int i = 0; i < 9; i++)
for(int j = 0; j < 9; j++)
v = atoi(buffer[i][j]);
sudoku[i][j] = v;
答案 0 :(得分:-1)
如果你想要在C ++中,那么你可以选择使用C ++样式cin
。以下是伪代码:
cout<<"Enter input:\n";
char sudoku[9][9];
cin>>&sudoku[0][0];
这里我们利用了任何数字都小于< 256
的事实。因此,您的表格将自动安排在sudoku[][]
内。