我正在尝试连接一些字符串,但它可以在一个字符串中起作用,但不能在另一个字符串中起作用。
工作:我接受2个论点,然后这样做。a = 你好,b = 世界
string concat = a + b;
输出将是 hello world 没有问题。
不工作:我从文件中读取并与第二个参数连接。假设文件中的字符串是 abcdefg。
string concat = (string from file) + b;
它给了我worldfg。
来自 b 的字符串不是连接,而是覆盖初始字符串。
我尝试了其他一些方法,例如使用 stringstream,但效果不佳。
这是我的代码。
int main (int nArgs, char *zArgs[]) {
string a = string (zArgs [1]);
string b = string (zArgs [2]);
string code;
cout << "Enter code: ";
cin >> code;
string concat = code + b;
}
// The output above gives me the correct concatenation.
// If I run in command prompt, and do this. ./main hello world
// then enters **good** after the prompt for code.
// The output would be **goodworld**
但是,我从文件中读取了一些行。
string f3 = "temp.txt";
string r;
string temp;
infile.open (f3.c_str ());
while (getline (infile, r)) {
// b is take from above
temp = r + b;
cout << temp << endl;
}
// The above would give me the wrong concatenation.
// Say the first line in temp.txt is **quickly**.
// The output after reading the line and concatenating is **worldly**
希望它给出更清楚的例子。
更新:
我想我可能已经发现问题出在文本文件上。我试图创建一个新的文本文件,里面有一些随机的行,它看起来工作正常。但是如果我尝试读取原始文件,它会给我错误的输出。仍然试图解决这个问题。
然后我尝试将原始文件的内容复制到新文件中,它似乎工作正常。不过不太确定这里出了什么问题。将继续测试,希望它工作正常。
感谢所有的帮助!欣赏它!