【发布时间】:2013-09-07 03:52:14
【问题描述】:
代码
while (dataFile)
{
getline(dataFile, input, '$');
if (getenv("windir"))
{
cmd = "open -a 'Google Chrome' http://www.dictionary.reference.com/browse/" + input;
}
else
{
cmd = "open -a 'Safari' http://www.dictionary.reference.com/browse/" + input;
}
system(cmd.c_str());
cmd.erase(cmd.find(input));
cout << cmd;
}
当 .txt 文件中有多个单词时,它只会查找第一个单词,而不能查找其他单词。它在输出sh: line 2: WORD: command not found 中说明了这一点。我怎样才能让它重置命令,以便其他词起作用?
cmd和input的初始化在main方法里面。
string cmd;
string input;
这是文本文件的样子:
Word1
Word2
WordETC
【问题讨论】:
-
你的意思是一行中有多个单词,还是有多个单词的行?
-
@jmstoker 多行。每行一个单词,否则程序根本无法运行,因为它的意思是每行读取一个单词。
-
input的类型是什么? -
另外,查看
cmd的声明也会有所帮助。 -
@mattbat131 你为什么用
$而不是\n定界?
标签: c++ string input system text-files