C++一次只从一个文件中读取一个元素

标签 c++ fstream

我想将一个文件读入一个 int 数组,但我需要一次读取一个元素。 这是文件中的内容:

    1000320                                                                         
    0110313
    3333000
    2033000
    2203011
    2000010 

这是代码:

std::ifstream fin("file.in");
for (int i=0; i<6; ++i) //rows
{
    for (int j=0; j<7; ++j) //columns
    {
        fin>>_array[i][j];
    }
}

如果我打印 _array[0][0],它会输出第一行的所有内容。但是我想将文件中的内容拆分为行和列。 对 INT 数组执行此操作的最优雅方法是什么(我不想使用 char 数组,尽管它会容易得多。另外,我知道如果我在文件中的数字之间放置空格,程序会读取它们一次一个,但我希望他们像这样)

最佳答案

您可以尝试使用 getchar() 你会得到 char 但立即将其转换为 int

char temp = getchar(fin);
_array[i][j] = temp - '0';

不幸的是没有getint()

关于C++一次只从一个文件中读取一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54373713/

相关文章:

c++ - 数据文件输入/输出错误

c++ - 如何在C++中使用 “unknown”名称重命名文件?

c++ - 保存和加载 std::chrono::time_point 到文件

c++ - 二阶线性递推方程的矩阵表示

c++ - 显式移动构造函数?

c++ - 使用 Makefile 和 GTest 对函数的 undefined reference

c++ - 将给定矩阵规范化为 C++ 中列项总和为 1 的矩阵

c++ - 我应该在 .cpp 和 .h 中重复包含吗?

c++ - 从我的二维数组中的一列返回的字符串值被压缩成一个字符串(在 Mac 操作系统上打开 Windows txt 文件)

c++ - 尝试加载文件 : Vector subscript out of range? 时出现运行时错误