尝试读取文件中的信息(C编程)

用户名

我是C语言编程的新手,我的文件系统遇到了问题。该程序的目的是使用户输入一条消息,然后将该消息存储在文本文件中用户的消息存储在文本文件中后,他们可以选择“阅读”他们所爱的人发送给他们的消息。

char SingleLine[150];
FILE * filePointer;
FILE * fpointer;
char mess[10];
char reply[100];

case 4:
    printf("enter a message: ");
    fscanf(stdin, "%s", mess);
    filePointer = fopen("gift.txt", "w");
    fprintf(filePointer, "%s \n", mess);
    printf("you said %s \n", mess);
    printf("they wrote something back?, would you like to read it?  yes or no? \n ");
    scanf("%s", &reply);    
    if ((toupper(reply[0]) == 'Y') && (toupper(reply[1]) == 'E') && (toupper(reply[2]) == 'S'))
    {
        printf("you said %s is that true???", &reply);
        printf("ok loading...\n");
        fpointer = fopen("luvtracey.txt", "r");
        while (!feof(fpointer))
            fgets(SingleLine, 150, fpointer);
            puts(SingleLine);
    }
    else if ((toupper(reply[0]) == 'N') && (toupper(reply[1]) == 'O'))
    {
        printf("wow ignorant \n");
    }
    else
    {
        printf("your not having it anymore");
    }
}

但是,当该代码首先运行时,当用户输入不带空格的消息时,它将被存储。但是,当您添加空格时,消息将被成两半,并且第一位将被存储。其次,当您键入“是”时(当您想查看亲人发送的内容时),它完全崩溃了,但我不明白为什么。同样,它也不会检索其中包含单词“ luvtracey.txt ”文件中的信息

我接受反馈,我只想对那些帮助我解决这些问题的人表示感谢。

〜尼姆

巴马克·谢米拉尼(Barmak Shemirani)

if ((toupper(reply[0]) == 'Y') && (toupper(reply[1]) == 'E') ...

您可以将字符串转换为小写或大写和strcmp,而不是一一检查字母。

while (!feof(fpointer))
fgets(SingleLine, 150, fpointer);
puts(SingleLine);

不要使用feof而是检查是否fgets成功。大概您要打印文件中的每一行,因此不要在循环结束后打印该行。您还需要进行错误检查,以确保文件已成功打开。例:

#include <stdio.h>
#include <ctype.h>
#include <string.h>

int main(void)
{
    char buffer[150];
    printf("enter a message: ");
    fscanf(stdin, "%s", buffer);
    printf("you said %s \n", buffer);

    FILE *fp = fopen("gift.txt", "w");
    fprintf(fp, "%s \n", buffer);
    fclose(fp);

    printf("yes or no? ");
    scanf("%s", buffer);
    for(int i = 0, len = strlen(buffer); i < len; i++)
        buffer[i] = (char)tolower(buffer[i]);
    if (strcmp(buffer, "yes") == 0)
    {
        fp = fopen("luvtracey.txt", "r");
        if(!fp)
        {
            printf("can't open...\n");
        }
        else
        {
            while(fgets(buffer, sizeof(buffer), fp))
                printf("%s", buffer);
            fclose(fp);
        }
    }
    return 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

尝试读取 csv 文件信息,并将其打印如下

Python尝试读取json文件并打印特定信息

打开/尝试读取文件

C#在尝试读取子字符串之前检测文件中的行是否存在

尝试从C中的文本文件读取信息

Read() 坚持尝试读取文件

尝试读取文本文件

尝试读取时找不到文件

尝试读取文件并同时遍历

尝试读取与 python 文件位于同一目录中的文件但收到 FileNotFoundError

我在尝试读取本地JSON文件的python文件中收到MissingSchema错误

Android打开失败:尝试读取数据/数据中的文件时,EACCES(权限被拒绝)

尝试读取bash中创建的临时文件时,权限被拒绝

当我尝试读取 2 个 txt 文件时,我的输出中显示了很多 0

尝试读取 CSV 文件并打印到控制台 C++

通过DllImport在C#中调用C方法-尝试读取或写入受保护的内存

C#Visual Studio-我正在尝试读取文本文件并将其显示到Richtextbox中并包括新行

w +在尝试读取文件内容时不起作用

尝试读取文件时出现奇怪的 NoSuchFileException

尝试读取属性文件Spring时获取NULL

Python3 Argparse尝试读取文件并计算字母

python pandas:尝试读取txt文件,但显示为NaN

尝试读取压缩文件时提示

尝试读取Excel文件时出现非法状态异常

Errno13,尝试读取文件时权限被拒绝

关于我尝试读取 .FIT 文件时的异常

Azure Databricks Spark XML库-尝试读取xml文件

尝试读取docx文件时出现UnicodeDecodeError

春季启动:从罐子读取时尝试读取资源文件夹中的目录内容会产生FileNotFoundException