-2

我有一个程序:

#include <stdio.h>
#include <string.h>
// ne menuvaj ovde
void wtf() {
    FILE *f = fopen("text.txt", "w");
    char c;
    while((c = getchar()) != EOF) {
        fputc(c, f);
    }
    fclose(f);
}
int main() {
    wtf();
    FILE *vlezna;
    vlezna=fopen("text.txt","r");

    float words=0,lines=0,average=0;
    int counter=0;
    char ch;
    while((ch=fgetc(vlezna))!=EOF)
    {
        if(ch==' ')
            words++;
        if(ch=='\n');
        {
            words++;lines++;
        }
    }
    average=words/lines;
    printf("%f",average);
    fclose(vlezna);
    vlezna=fopen("text.txt","r");
    while((ch=fgetc(vlezna))!=EOF)
    {   words=0;
        if(ch==' ')
            words++;
            if(ch=='\n')
            {
                words++;
                if(words<average) counter++;
            }
    }
    fclose(vlezna);
    printf("%d",counter);
}

所以我假设第一个函数写入文件。但我想应该首先创建文件,我不知道如何(除了右键单击新文本文档)。另外我不知道如何在文件开头返回指针,所以我关闭它并再次打开它,假设这将在开头返回指针?

4

2 回答 2

2

fopen如果选项是 ,则创建文件如果它不存在"w"
在此处阅读文档:http ://www.cplusplus.com/reference/cstdio/fopen/

于 2013-08-19T12:53:25.143 回答
1

无需创建。对于手册页fopen

``w''   Truncate to zero length or create text file for writing.  The stream is positioned at the
        beginning of the file.

要设置文件指针,请使用fseek. 但是,要读取写入,您需要不同的打开标志。

于 2013-08-19T12:52:29.267 回答