输出未按正确的顺序打印
Output not printing in the right order
所以我正在尝试从文本文件中读取并打印每一行,用两个字符串包围。例如,这是我的程序:
string command;
int main()
{
while (!cin.eof()) {
while (getline(cin, command)) {
cout << "Can't add element : " << command << " : invalid parameter." << endl;
}
}
}
输入文件采用每行 3 个数字的形式,如下所示:
1 1 1
2 2 2
5 4 9
因此,输出应为:
Can't add element : 1 1 1 : invalid parameter.
Can't add element : 2 2 2 : invalid parameter.
Can't add element : 5 4 9 : invalid parameter.
相反,它打印为:
: invalid parameter.1 1 1
: invalid parameter.1 2 2
: invalid parameter.5 4 9
对于我的生活,我无法弄清楚为什么会发生这种情况。有什么帮助吗?
您的command
字符串末尾有一个回车符(r
)。当它输出到控制台时,它会使输出在行首重新启动。在打印字符之前剥离字符。
请注意,文本" : 无效参数." 完全覆盖了输出中的文本 "无法添加元素:"。在 getline() 之后检查你的"命令"字符串,我相信你会有"CR"(ascii 13)作为最后一个字符,所以在你的"命令"字符串写出来后,进一步的输出继续在行首。
如果我要推测为什么会发生这种情况,我猜您的终端模拟器会发出"CRLF",而您的系统只期望"LF"作为行尾字符。
尝试如下操作(可能会对您有所帮助)
int main () {
string line;
ifstream myfile ("example.txt");
if (myfile.is_open()) {
while ( getline (myfile,line) ) {
cout << "Can't add element : " << line<< " : invalid parameter." << endl;
}
myfile.close();
}
else cout << "Unable to open file";
return 0;
}
相关文章:
- 如何在C++中递归地按相反顺序打印集合
- 首先按给定顺序打印所有数字,然后使用 Array 打印所有字符和其他符号
- 按字母顺序打印存储在字符数组中的信息
- 视觉C++未按所需顺序打印
- C++使用相反的顺序打印带有逗号的列表
- C/C++ - 用于按顺序打印数字的 sem_t 类型的单个信号量
- 如何以相反顺序C 打印整数的单个数字
- 我不知道如何创建一个以数字/字母顺序打印出我的整数或字符串的程序
- 在 C Linux 中使用三个线程使用信号量同步按顺序打印 3 4 5 50 次
- 以相反的顺序打印链表的后半部分
- 我如何附加双链接以指向正确的节点,以相反的顺序打印
- 按字母顺序打印结构输入C
- 按顺序打印时遇到问题,二叉树的后顺序等
- 按特定顺序打印队列
- 输出未按正确的顺序打印
- 按字典顺序打印给定字符串的所有字母组合的算法
- 使用基于范围的 for 循环以相反的顺序打印矢量
- C++链表-按排序顺序打印
- 我如何使用C ++以相反的顺序打印此单个链表中的元素
- 如何使链接列表按字母顺序打印其内容