C++ 打开多个输入文件
我很难创建一个菜单,其中case“I”-打开两个输入文件,case“r”逐行读取文件到数组中,最后case“cf”关闭文件。现在它无法编译。例如:C++ 打开多个输入文件,c++,xcode,C++,Xcode,我很难创建一个菜单,其中case“I”-打开两个输入文件,case“r”逐行读取文件到数组中,最后case“cf”关闭文件。现在它无法编译。例如: #include <iostream> #include <fstream> using namespace std; std::ifstream inputFile1,inputFile2; void openinputFiles(); void closeinputFiles(); void readFiles();
#include <iostream>
#include <fstream>
using namespace std;
std::ifstream inputFile1,inputFile2;
void openinputFiles();
void closeinputFiles();
void readFiles();
int main ()
{
// menu
case'i': // open files
case 'I': openinputFiles();
break;
case 'cf': // close files
case 'CF': closeinputfiles();
break;
case 'r': // read file line by line into array
case 'R': readFiles();
break;
}
void openinputFiles()
{
std::cout << "Enter the input filename 1:";
std::cin >> inputfileName;
inputFile1.open(inputfileName);
if(inputFile1.is_open())
std::cout<<"File 1 Opened"<<std::endl;
inputfileName.clear();
std::cout << "Enter the input filename 2:";
std::cin >> inputfileName;
inputFile2.open(inputfileName);
if(inputFile2.is_open())
std::cout<<"File 2 Opened"<<std::endl;
}
void closeinputfiles()
{
inputFile.close();
}
void readFiles()
{
// Code
}
#包括
#包括
使用名称空间std;
std::ifstream inputFile1,inputFile2;
void openinputFiles();
void closeinputFiles();
void readFiles();
int main()
{
//菜单
案例'i'://打开文件
案例“I”:openinputFiles();
打破
案例'cf'://关闭文件
案例“CF”:closeinputfiles();
打破
案例'r'://将文件逐行读取到数组中
案例“R”:readFiles();
打破
}
void openinputFiles()
{
std::cout>inputfileName;
inputFile1.open(inputfileName);
if(inputFile1.is_open())
std::cout看到这个了吗
#include<iostream>
#include<fstream>
int main()
{
std::ifstream inputFile1,inputFile2;
std::string inputfileName;
std::cout << "Enter the input filename 1:";
std::cin >> inputfileName;
inputFile1.open(inputfileName.c_str());
if(inputFile1.is_open())
std::cout<<"File 1 Opened"<<std::endl;
inputfileName.clear();
std::cout << "Enter the input filename 2:";
std::cin >> inputfileName;
inputFile2.open(inputfileName.c_str());
if(inputFile2.is_open())
std::cout<<"File 2 Opened"<<std::endl;
return 0;
}
对我来说很好
编辑:
您不能使用字符串,以防出现问题,请尝试此操作
#include<iostream>
#include<fstream>
int main()
{
char str[3];
std::cin>>str;
if(toupper(str[0])=='C')
{
if(toupper(str[1])!='F')
str[0]='\0';
}
switch(str[0])
{
case 'i': // open files
case 'I': std::cout<<"Open";
break;
case 'c': // close files
case 'C': std::cout<<"close";
break;
case 'r': // read file line by line into array
case 'R': std::cout<<"Read";
break;
}
return 0;
}
看到这个了吗
#include<iostream>
#include<fstream>
int main()
{
std::ifstream inputFile1,inputFile2;
std::string inputfileName;
std::cout << "Enter the input filename 1:";
std::cin >> inputfileName;
inputFile1.open(inputfileName.c_str());
if(inputFile1.is_open())
std::cout<<"File 1 Opened"<<std::endl;
inputfileName.clear();
std::cout << "Enter the input filename 2:";
std::cin >> inputfileName;
inputFile2.open(inputfileName.c_str());
if(inputFile2.is_open())
std::cout<<"File 2 Opened"<<std::endl;
return 0;
}
对我来说很好
编辑:
您不能使用字符串,以防出现问题,请尝试此操作
#include<iostream>
#include<fstream>
int main()
{
char str[3];
std::cin>>str;
if(toupper(str[0])=='C')
{
if(toupper(str[1])!='F')
str[0]='\0';
}
switch(str[0])
{
case 'i': // open files
case 'I': std::cout<<"Open";
break;
case 'c': // close files
case 'C': std::cout<<"close";
break;
case 'r': // read file line by line into array
case 'R': std::cout<<"Read";
break;
}
return 0;
}
您正在调用没有Switch语句的Case语句!我不知道它是否可以使用该语句,但请在跳转到Case之前尝试添加Switch语句
当您关闭文件时,您使用的是未定义的对象!!您调用的是不带Switch语句的Case语句!我不知道它是否适用于此,但请尝试在跳转到Case之前添加Switch语句
当您关闭文件时,您使用的是未定义的对象!!请说明您是如何输入文件名和有关文件名的信息的?您的意思是什么?@Sri lakshmi kanthanshow您的代码输入是什么,文件名是什么?有两个输入文件,名称是:“test1.txt”和"test2.txt。当用户被要求输入文件名时,每个文件都需要一次打开一个。这是否回答了您的问题?请说明您是如何给出关于文件名的输入和信息的?您的意思是什么?@Sri lakshmi kanthanshow代码的输入是什么?文件名是什么?有两个输入文件和名称为:“test1.txt”和"test2.txt。当用户被要求输入文件名并输入其中一个文件时,每个文件都需要一次打开一个。这是否回答了您的问题?@randomp103请随意接受答案,如果您得到了答案。@randomp103您可以通过添加上述详细信息来编辑您的帖子吗?因为它很容易阅读。我刚刚做了,希望更清楚地理解@斯里兰卡拉克希米kanthan@randomp103如果你得到了答案,请随意接受。@randomp103你能通过添加上述细节来编辑你的帖子吗?因为它很容易阅读。我刚刚做了,希望能更清楚地理解@Sri lakshmi kanthan