c++ - 使用 get() 从包括空格的输入中读取字符

标签 c++ file-io

这是我的问题。

我指定了大小为 2 的 dim 数组。每一行都包含空格和“!”。让我展示一下。

row size:3 column size:8 

! !!!! !
!!!!!!!!
!!  !! !

我尝试读取它并存储到 vector < vector < char >> 中。为此,我编写了以下代码。

vector<vector<char> > rows;
for(int i=0;i<3;i++){
    vector<char> row;
    for(int j=0;j<8;j++){
        tempChar=myfile.get();
        temp.push_back(tempChar);
    }
    rows.push_back(row);
} 

但是,我搞错了,我不知道为什么。有人可以帮助我吗?提前致谢。

最佳答案

您忘记考虑换行符。当您阅读前 8 个字符时,下一个(或两个,如果使用 Windows 操作系统)将是行分隔符。您将需要处理它。

比读取单个字符更可靠的方法是使用 std::getline

关于c++ - 使用 get() 从包括空格的输入中读取字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20228635/

相关文章:

c++ - 不匹配删除

c++ - Cygwin 下使用 CMake 编译库

java - 我可以使用 Java 打开 Windows Enterprise 上用户主目录中的文件吗?

java - 如何让高分榜与用户保持联系?

java InputMismatchException 从文件中读取

linux - 从扇区中的磁盘读取是原子的吗?

c++ - 条件变量虚假唤醒/循环任务

C++ 表达式 - 两者中哪一个更快?

C++:直接使用函数返回 shared_ptr 的值是个坏主意吗?

.net - 如何使用 .net 语言(C# 或 PowerShell 等)高效读取大文件(大于数百 GB)的前 1000 个字节