[英]How do I copy the string in a txt file?
这是我正在处理的文本文件的示例:
http://example.com/object1 50 0
http://example.com/object2 25 1
http://example.another.com/repo/objects/1 250 0
ftp://ftpserver.abc.edu:8080 13 5
...
我想将url,大小(第一个数字)和优先级(第二个数字)传递到数组中。 这是我的代码:
ifstream infile;
infile.open("ece150-proj2-input.txt");
//Get the number of lines in the text file
int lines = 0;
while (!infile.eof()) {
string line;
getline(infile, line);
lines++;
}
//Get the components in the input file
char url[lines][50];
float size[lines];
float delay[lines];
for (int i = 0; i < lines; i++) {
infile >> url[i] >> size[i] >> delay[i];
}
//Testing if I get the url address correctly
cout << url[0] << endl;
cout << url[1] << endl;
但是结果是一些奇怪的字符:
pĞQ?
?Q?
为什么会这样呢? 任何人都可以解决这个问题。 谢谢 ;-)
这里的问题是,当您一次读取文件时,流现在位于文件的末尾。 您需要调用infile.seekg(0, infile.beg);
快退到视频流的开头。 您也可以关闭并重新打开infile。
其次,您要声明char url[lines][50];
你不可以做这个。 c ++中数组的长度必须是编译时间常数。 我真的很惊讶您的代码被编译并没有提供任何输出。
我建议您使用std :: vector,它就像一个数组,但是您可以在最后添加元素。 这样,您无需事先知道行数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.