gpt4 book ai didi

c++ - 我的cout怎么了?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:25:36 25 4
gpt4 key购买 nike

在 C++ 中,Ubunt 12.04,我有一个名为 config.txt 的文件,其中包含 user namepassword 。我有 2 个 public static string 变量: USERPASSWORD 。这是我的代码:

// Read file from config
string text[2];
int count = 0;
while(!fin.eof()){
getline(fin,text[count]);
count++;
if(count == 2){
break;
}
}
CONNECTOR::USER = text[0];
CONNECTOR::PASSWORD = text[1];

string userAndPassword = CONNECTOR::USER + ":" + CONNECTOR::PASSWORD;
cout << CONNECTOR::USER << endl; // It's fine, right user: qsleader
cout << CONNECTOR::PASSWORD << endl; // ok, right password: 123456
cout <<"user and password: " << userAndPassword << endl; // It's weird text! Problem here!

奇怪的文本结果是::123456d password: qsleader !!这不是我所期望的!但是我不知道为什么会这样?谁能给我一个建议? (如果我打印: cout << "user and password: qsleader:123456" ,结果很好!!)!

最佳答案

问题是在您读取值时产生的。事实上,我猜你的文件在两条不同的行上有这两项。此外,我猜这个文件使用 Windows 行结尾。因此,当您读取第一项时,它读取 qsleader\r 然后停止,因为下一个提取的字符是 \n,已提取但未附加到字符串。

当您创建 userAndPassword 字符串时,它实际上是 qsleader\r:123456。这个特殊字符 \r 是回车符。它使光标转到行的开头。所以在最后一行,先输出user and password: qsleader,然后回到第一列,写入:123456,得到:123456d密码:qsleader.

关于c++ - 我的cout怎么了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13340811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com