Скажем, у меня есть программа, которая передает файлы CSV через командную строку, а затем использует цикл для анализа соответствующего содержимого в структуре.Передача CSV-файлов через командную строку БЕЗ использования расширения файла
Использование будет примерно таким: Анализ 100 200 300 и т. Д. Где Analyze - это имя исполняемого файла, а 100 200 300 - файлы CSV.
я мог бы получить мою программу, чтобы нормально работать, если пользователь вводит расширение с именем файла:
Анализ 100.csv 200.csv 300.csv и т.д., но мне нужна программа для работы без расширений файлов, например, : Анализ 100 200 300 и т.д. код
Пример:
int main(int argc, char* argv[])
{
Testing T; //struct
if (argc > 1)
{
cout << "Loading . . . \n\n" << endl;
}
else
{
cout << "Usage: Analyze filename filename filename etc\n";
return -1;
}
cout << "argc = " << argc << endl;
for (int i = 1; i < argc; i++)
{
ifstream infile(argv[i]); //open the file
if (infile.is_open() && infile.good())
{
cout << "File is now open!\nContains:\n";
string line = "";
while (!infile.eof())
{
getline (infile, T.str);
cout << "T.str: " << T.str << "\n";
getline (infile, T.str2);
cout << "T.str2: " << T.str2 << "\n";
YADDA YADDA YADDA ...
Благодаря
расширение файла совершенно не имеет значения. Если файл имеет имя «100.csv», а пользователь вводит «100», то вручную конкатенируйте '.csv' в конце. В чем проблема? –
Перед открытием файла необходимо добавить расширение. – Barmar
@ChrisHayes, так что вы говорите, добавьте ifstream infile (argv [i] ". CSV")? Я пытался сделать что-то подобное, и он не работает – GeorgeCostanza