【发布时间】:2012-03-27 20:08:28
【问题描述】:
我已经编写(复制和修改)了一个代码,其目标是将所有行连接成一个文件中的单个字符串。但是我得到了意想不到的结果。
//Fillvector.cpp
#include <string>
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int main() {
vector<string> v;
ifstream in("Fillvector.cpp");
string line;
string finalString="";
while(getline(in, line))
v.push_back(line);
for(int i=0; i < (int)v.size(); i++) {
finalString += v[i];
}
cout << finalString << endl;
}
我在终端上得到的结果是
}nt maincout << finalString << endl;(); i++) {
怎么了?
【问题讨论】:
-
缩进你的代码将极大地帮助你了解事情的进展,更不用说让其他人看到它......
-
这不会阻止您的代码编译,但如果您使用
-Wall运行,您将看到在 for 循环条件中比较 unsigned 和 sign int 的警告。您可以通过将i声明为无符号整数或将v.size()的结果转换为整数来解决此问题。此处以更好的格式对此进行了解释:cplusplus.syntaxerrors.info/… -
看起来除了我之外你们所有人都明白了。不知道怎么回事。
-
@AdamBernier 看起来这应该是我的系统有问题,因为所有其他人都能够正确处理。但我不知道这是什么问题以及如何纠正它。
标签: c++ g++ linux-mint