c - 尝试读取文件时出现分段错误
问题描述
我查看了如何使用 fgets 函数,因此我编写了以下代码:
#include <stdio.h>
void main(int argc, char** argv)
{
if (argc == 2)
{
FILE* file = fopen(argv[1], "r");
if (file != NULL)
{
char line[100];
while (fgets(line, sizeof(line), file))
{
printf("%s", line);
}
}
}
}
我编译程序:
gcc main.c
并运行它:
./a.out textdoc.txt
文件 textdoc.txt 有一些乱码(它不是空的):
ageagea gea g
geagae g g g g
eagae ge g ga a a fea
gea hr hr a faw
我注意到的是,当我到达 fgets() 代码行时,我遇到了分段错误。
谁能告诉我是什么问题?
解决方案
推荐阅读
- variables - 我在变量中的特定区域进行串联时遇到问题。当它说 text=shrek + 'USD' 时,程序一直说有错误
- cuda - 将 cuda 倾斜内存复制到一维阵列(设备到设备)的推荐方法是什么?
- emacs - 如何在批处理模式下运行 emacs 并让它自动遵循 GIT 存储库链接
- c# - SignalR 消息未在 mvc 视图上接收
- proxy - 如何向 http 代理添加异常
- swift - Swift 5,无法显示此文本
- python - 如何在 Python、Sqlite3 中处理日期。日期存储为 vachar?
- jhipster - 来自 OAuth 提供者的用户数据不匹配
- wordpress - 如何在 Polylang 插件的特定页面中隐藏语言代码
- reactjs - Mapbox GL Js,动态改变地图容器大小,无法调整地图大小