我通過三個參數傳遞給我的程序,這是所有的文本文件: ARG 1:一個 ARG 2:二 ARG 3:三爲什麼我的代碼打印兩次相同的命令行參數?
爲什麼ARG 1被打印了兩次?
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
if(argc < 2) //check if files exist 1st
{
cout << "usage: " << argv[0] << " <filename>\n";
}
else //proceed if files exist
{
for(int x = 1; x < argc; x++) //while x < the argument count, read each argument
{
ifstream infile;
infile.open(argv[x]);
if(!infile.is_open()) //check is file opens
{
cout << "Could not open file." << endl;
}
else //if it opens, proceed
{
string s;
while(infile.good())
{
infile >> s; //declare string called s
if(s[s.length()-1] == ',') //if the end of the arg string has a ',' replace it with a null
{
s[s.length()-1] = '\0';
}
cout << s;
if(x != (argc -1))
{
cout << ", ";
}
}
}
}
cout << endl;
}
return 0;
}
此代碼輸出:
一個,一個,兩個,三個
當您使用** **調試器,這說法導致了問題?變量的值是什麼? –
而不是'while(infile.good())',使用'while(infile >> s)'。 –
如果你只是**傳遞一個字符串**爲什麼打開一個**文件** ** –