[英]What wrong with my cout?
在 C++、Ubunt 12.04 中,我有一个名为config.txt
的文件,其中包含user name
和password
。 我有 2 个public static string
变量: USER
和PASSWORD
。 这是我的代码:
// 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 password: qsleader
。
您将userAndPassword
设置为涉及赋值的地狱表达式。 我猜你的意图是:
string userAndPassword = CONNECTOR::USER + ":" + CONNECTOR::PASSWORD
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.