C++;-通过在控制台中包含csv文件的路径来读取和写入csv文件 我想用C++来读写CSV文件。 限制条件是我必须在控制台中写入路径。 例如,如果我想读取文件,我必须在控制台中写入: 读取“文件路径” 如果我想写一个文件: 写入“文件路径”“分隔符” 我已经创建了可以工作的函数,但没有在控制台中指示路径
以下是我的主要功能:C++;-通过在控制台中包含csv文件的路径来读取和写入csv文件 我想用C++来读写CSV文件。 限制条件是我必须在控制台中写入路径。 例如,如果我想读取文件,我必须在控制台中写入: 读取“文件路径” 如果我想写一个文件: 写入“文件路径”“分隔符” 我已经创建了可以工作的函数,但没有在控制台中指示路径,c++,csv,path,console,C++,Csv,Path,Console,以下是我的主要功能: int main() { SudokuGrid sudokuGrid; bool done = false; string command; while (!done) { cout << "Enter a command :" << endl; cin >> command; if (command == "Read") { sudo
int main()
{
SudokuGrid sudokuGrid;
bool done = false;
string command;
while (!done) {
cout << "Enter a command :" << endl;
cin >> command;
if (command == "Read") {
sudokuGrid.readGridFromCSVFile("Sudoku.csv");
cout << endl << "Grid read with success !" << endl << endl;
}
else if (command == "Write") {
sudokuGrid.writeCSVFileFromGrid("Sudoku3.csv", *";");
cout << endl << "The file has been created !" << endl << endl;
}
else if (command == "Display") {
cout << "Here is the grid !" << endl << endl;
sudokuGrid.printGrid();
}
else if (command == "Exit") {
done = true;
}
else if (command == "Help") {
cout << "TODO" << endl;
}
else {
cout << "Incorrect Command" << endl << endl;
}
}
return 0;
intmain()
{
SudokuGrid SudokuGrid;
bool done=false;
字符串命令;
而(!完成){
cout命令;
如果(命令==“读取”){
sudokuGrid.readGridFromCSVFile(“Sudoku.csv”);
cout您可以使用std::getline()
()而不是std::cin
+operator>
通过这种方式,您将能够在一个字符串中获取整个输入的命令,而不管您给出了多少个参数。然后您可以将每个参数存储在std::vector
中
SudokuGrid SudokuGrid;
bool done=false;
std::string命令;
而(!完成){
cout Hi!因为SO不是一个代码提供程序服务,而是一个关于特定问题的问答平台,所以您应该添加您为解决问题所做的尝试。也可以尝试添加一个。如果您对如何改进您的问题有任何疑问,您也可以检查。在您的情况下,如果您已经制作了可以工作的函数,请提供它们并解释为什么你不设法用控制台给他们打电话可能会得到更多、更快的有用答案。对话者,你现在有了一个完全可以回答的完整问题。+1顺便说一句,在我使用getline时,请确保你没有使用std::cin
,或者确保你处理了感谢你的回答。但这会在lin上引发一个异常std::out_of_rangee:if(arguments.at(0)=“Read”)@CongelateurSama输入的是什么?读取C:\\Users\\Hugo\\Desktop\\Sudoku.csv或读取“C:\\Users\\Hugo\\Desktop\\Sudoku.csv”@CongelateurSama奇怪,我无法复制,请确保参数
在正确的范围内。在(!done)时,if-else条件仍必须在中
循环。可能尝试使用调试器检查命令
和参数
是否正确设置。同时请记住,我之所以保留std
s是因为我没有使用命名空间。如果确实使用了命名空间std
,则可能需要删除它们
cin >> command >> csvFilePath;
if (command == "Read") {
sudokuGrid.readGridFromCSVFile(csvFilePath);
cout << endl << "Grid read with success !" << endl << endl;
sudokuGrid.printGrid();
}
if (arguments.at(0) == "Read") {
sudokuGrid.readGridFromCSVFile(arguments.at(1));
cout << endl << "Grid read with success !" << endl << endl;
}