Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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++;_C++_C - Fatal编程技术网

C++ 如何使此函数与文件一起工作?C++;

C++ 如何使此函数与文件一起工作?C++;,c++,c,C++,C,我正在尝试编写两个函数,其中传递一个文件*,这些函数创建另一个文件*,其中它们分别将原始数据以小写和不带空格的大写形式放置 我想我知道了,但我不知道如何将文件*传递给函数 #include <iostream> #include <stdio.h> #include <stdlib.h> #include <ctype.h> using namespace std; void minusculas (FILE *urFile); void may

我正在尝试编写两个函数,其中传递一个
文件*
,这些函数创建另一个
文件*
,其中它们分别将原始数据以小写和不带空格的大写形式放置

我想我知道了,但我不知道如何将
文件*
传递给函数

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
using namespace std;

void minusculas (FILE *urFile);
void mayusculas (FILE *urFile);

main(){
    char s[256];
    FILE *pf;
    cout << "Tell me the name of the FIlE: ";
    gets(s);
    pf=fopen(s,"r");
}

void minusculas (FILE *urFile){
    char c; FILE *pf;
    urFile=fopen(urFile,"r");
    pf=fopen ("alliva.txt","w+");
    while (c!=EOF){
        c=getc(pf);
        if (c!=EOF)
            c=tolower(c);
        fprintf(pf,"%c" ,c);
    }
}

void mayusculas (FILE *urFile){
    char c; FILE *pf;
    urFile=fopen(urFile,"r");
    pf=fopen ("alliva.txt","w+");
    while (c!=EOF){
        c=getc(pf);
        if (c!=EOF && isspace(c)==0)
            c=toupper(c);
        fprintf(pf,"%c" ,c);
    }
}
#包括
#包括
#包括
#包括
使用名称空间std;
无效极小值(文件*urFile);
无效mayusculas(文件*urFile);
main(){
chars[256];
文件*pf;
库特
在此
pf
中表示
文件*
或打开文件的句柄。您可以在函数中直接传递它。检查的手册页

您可以直接在文件句柄上执行类似于
fgetc
getc
的操作

除此之外,您的代码需要通过在不同的位置适当地调用
fclose
来处理文件关闭


要给出如何执行此操作的示例,请参见以下函数:

void minusculas (FILE *urFile){
    char c; FILE *pf;
    //urFile=fopen(urFile,"r"); This is not needed
    pf=fopen ("alliva.txt","w+");
    while (c!=EOF){
        c=getc(urFile); //If you want to read from urFile
        if (c!=EOF)
            c=tolower(c);
        fprintf(pf,"%c" ,c);
    }
    fclose(pf)
}
您可以从主菜单调用此函数,如下所示:

pf=fopen(s,"r");
minusculas(pf)
fclose(pf)

请努力,并正确地缩进代码。你的代码在这里是不可读的。你可以问你的问题。看起来C比C++多。如果你不混合两种语言,编写代码就更容易了。当前的答案适用于C,C++中,你不会在第一次使用<代码>文件<代码>。place@user463035818很抱歉,只是我们我的老师告诉我,我正在尝试更多的学习,但我仍然混合语言,因为他教我一点二者。<代码>主())/>代码应该是“代码> int”(/c>)(不幸的是,一些C++编译器不抱怨<代码>主())/代码>,并且永远不要使用<代码>获取< /代码>。
在你打开的每个
文件上*
上。@RemyLebeau,谢谢你的评论。我刚才在一份声明中提到了它。现在,我也更新了代码片段以反映同样的情况。
pf=fopen(s,"r");
minusculas(pf)
fclose(pf)