gpt4 book ai didi

c - 从 C 中的文件读取 Bex 错误

转载 作者:太空宇宙 更新时间:2023-11-04 07:15:27 24 4
gpt4 key购买 nike

在文件 count.c 中,程序从文件中读取一个字符串,然后计算文件中给定的字符总数。以下是文件 count.c 中的代码行:

#include <stdio.h>
int main()
#define max 1000
{
char c, inpt[max];
int i;
for (i=0; (c=getchar()) !='\n'; ++i){
inpt[i]=c;
}
printf("Count is %d. ",i);
}

代码编译成功,没有任何错误消息,但是当我运行命令时:

    count.exe < Rehan.txt

程序崩溃,提示 'count.exe 已停止工作'

问题详情如下:

    Problem signature:
Problem Event Name: BEX
Application Name: count.exe
Application Version: 0.0.0.0
Application Timestamp: 53e5d5d5
Fault Module Name: StackHash_e98d
Fault Module Version: 0.0.0.0
Fault Module Timestamp: 00000000
Exception Offset: ffffffff
Exception Code: c0000005
Exception Data: 00000008
OS Version: 6.1.7600.2.0.0.256.1
Locale ID: 1033
Additional Information 1: e98d
Additional Information 2: e98dfca8bcf81bc1740adb135579ad53
Additional Information 3: 6eab
Additional Information 4: 6eabdd9e0dc94904be3b39a1c0583635

最佳答案

如果您的文件只有一行,您的程序将永远循环,同时检查 i < max - 1 , 尝试:

for (i = 0; i < (max - 1) && (c = getchar()) != EOF && c != '\n'; ++i)
{
inpt[i] = c;
}

那末尾的 0 呢? NUL终止inpt如果你想要一个有效的字符串:

inpt[i] = '\0';

关于c - 从 C 中的文件读取 Bex 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25216820/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com