我正试图从文件中读取时间,例如(12:00 A) 我需要阅读这三个部分。这就是我所拥有的。
#include <iostream>
#include <fstream>
#include <stdio.h>
using namespace std;
int main()
{
string name, filename;
ifstream inputFile;
cout << "What is the name of the file to be provessed ";
cin >> filename;
inputFile.open(filename.c_str());
getline(inputFile, name);
fscanf (inputFile, "%d:%d %c", &startH, &startM, &startAP);
fscanf (inputFile, "%d:%d %c", &endH, &endM, &endAP);
inputFile >> payRate;
我从标题中得到错误,我不确定我做错了什么。
答案 0 :(得分:3)
函数fscanf
是一个标准的C函数,它在头文件<cstdio>
中以下面的方式声明(我将在C中的头文件<stdio.h>
中显示该函数是如何声明的,实际上是相同的除了关键字restrict之外的声明在C ++中使用)
int fscanf(FILE * restrict stream,
const char * restrict format, ...);
如您所见,没有std::ifstream
因此,编译器发出错误,因为它无法找到名为fscanf的函数,该函数具有std :: ifstream类型的第一个参数,同时它无法隐式转换std::ifstream
类型的对象指向FILE *
您不应将C ++流功能与C流功能混合使用。