Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 打开多个输入文件_C++_Xcode - Fatal编程技术网

C++ 打开多个输入文件

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();

我很难创建一个菜单,其中case“I”-打开两个输入文件,case“r”逐行读取文件到数组中,最后case“cf”关闭文件。现在它无法编译。例如:

#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