我是c的新手,希望讀取csv檔案並打印出行數.
檔案的目錄作為命令列引數傳遞,並給出檔名.以下行應該構建csv的路徑:
//argv[1] = C:\Users\me\source\repos\sol1\proj1\bin\x64\Debug\191003-070100\
string verpfad = argv[1] + std::string("veraenderungen.csv");
//verpfad shows as: C:\Users\me\source\repos\sol1\proj1\bin\x64\Debug\191003-070100 in the console
接下來,我試圖將反斜槓放在檔名前面並從命令列引數中刪除它:
//argv[1] = C:\Users\me\source\repos\sol1\proj1\bin\x64\Debug\191003-070100
string verpfad = argv[1] + std::string("\\veraenderungen.csv");
//verpfad shows as: C:\Users\me\source\repos\sol1\proj1\bin\x64\Debug\191003-070100 in the console
接下來我試過了
//argv[1] = C:\Users\me\source\repos\sol1\proj1\bin\x64\Debug\191003-070100
string verpfad = argv[1] + '\\' + std::string("veraenderungen.csv");
//verpfad shows as: veraenderungen.csv in the console
我該如何解決這個問題?
為了完整起見,整個程式碼:
#include "pch.h"
#include <iostream>
//meine includes
#include <string>
#include <fstream>
using namespace std;
int main(int argc, char* argv[])
{
// this line
string verpfad = argv[1] + std::string("veraenderungen.csv");
ifstream ver(verpfad);
if (!ver.is_open()) std::cout << "Datei " << verpfad << "kann nicht geöffnet werden" << '
';
//Anzahl der Zeilen in der Datei
std::count(std::istreambuf_iterator<char>(ver), std::istreambuf_iterator<char>(), '
');
ver.close();
std::cout << "Pfad ist: ";
std::cout << argv[1] << std::endl;
system("pause");
return 0;
}