.csv ifstreams看起来像什么?
what do .csv ifstreams look like?
我正在尝试编写。csv解析器,该任务似乎需要熟悉。csv输入文件流的性质。
我有一个。csv文件,名为"sample.csv",在文本编辑中看起来像这样:
1,2
3,4
2,4
5,6
我用c++写了下面的代码:
ifstream myfile ("sample.csv");
double data;
char formatting;
myfile >> data; cout << data<<'n';
myfile >> formatting; cout << formatting<<'n';
myfile >> data; cout << data<<'n';
myfile >> formatting; cout << formatting<<'n';
myfile >> data; cout << data<<'n';
myfile >> formatting; cout << formatting<<'n';
myfile >> data; cout << data<<'n';
myfile >> formatting; cout << formatting<<'n';
在我看来,输出应该是这样的:
1
,
2
3
,
4
但是,我从Terminal得到以下输出:
1
,
2
3
0
3
03
这到底是怎么回事?
ifstream通常忽略空白,因此您正在读取数字'1',然后是字符',',然后是数字'2',然后是字符'3'(因为忽略换行符),然后您尝试读取数字,但实际上您有一个逗号。试着重写代码,这样在读取流时就不会看到任何换行符或其他空格了。
在读取字段时,您似乎在下注。你需要读data -> formatting -> data,重复。
ifstream myfile ("sample.csv");
double data;
char formatting;
myfile >> data; cout << data<<'n';
myfile >> formatting; cout << formatting<<'n';
myfile >> data; cout << data<<'n';
myfile >> data; cout << data<<'n';
myfile >> formatting; cout << formatting<<'n';
myfile >> data; cout << data<<'n';
行中第二个数字后面的换行符终止了该字段,将不会被读入formatting
相关文章:
- std::vector的包装器,使数组的结构看起来像结构的数组
- 看起来is_nothrow_constructible_v()在MSVC中被破坏了,我错了吗
- 学习多线程C++:添加线程不会使执行速度更快,即使它看起来应该
- 尽管一切看起来都很好,但值不会交换
- 自制的上衣:看起来一样,但不完全相同
- 如何使它看起来像正在下的雪
- 如何用逗号分隔输出?如何改进此代码以使其看起来更体面?
- 我的代码看起来不错,但某些输入会导致不需要的输出
- 为什么这个结构的大小是 40,而它看起来应该是 12/24?
- 我需要将阵列样式的邻接矩阵转换为矢量样式(以使其看起来更好)
- 结构化绑定:当某些内容看起来像引用并且行为类似于引用,但它不是引用时
- 如何使QTextEdit看起来被禁用
- 在正确性或良好的代码结构方面,这种动态对象创建看起来如何
- 看起来如此主要的错误.cpp:(.text.startup+0xd6):未定义对"vtable for Counter"的引用?
- C 时间测量看起来太慢了
- 我应该如何使 std::filesystem 看起来符合 Visual Studio 2015 的标准
- 写入.ini文件 - SimpleIni SetValue 尽管看起来成功了,但什么也没做
- 什么是UMThunkStubAMD64,为什么它看起来是一个瓶颈
- 编译器在尝试优化/内联我看起来微不足道但并非微不足道的 dtor 时搬起石头砸自己的脚,我做错了什么
- .csv ifstreams看起来像什么?