- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
<分区>
我写了这个 minishell,但我不确定我是否正确控制了错误。我知道 fgets 可以返回 feof 和 ferror ( http://www.manpagez.com/man/3/fgets/ )但我不知道如何使用它们。
我已经检查过 fgets 是否返回空指针(这表明缓冲区的内容是不确定的),但我想知道如何使用 feof 和 ferror。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#define LINE_LEN 50
#define MAX_PARTS 50
int main ()
{
char* token;
char str[LINE_LEN];
char* arr[MAX_PARTS];
int i,j;
bool go_on = true;
while (go_on == true){
printf("Write a line:('quit' to end) \n $:");
fgets(str, LINE_LEN, stdin);
if (str==NULL) {
goto errorfgets;
} else {
size_t l=strlen(str);
if(l && str[l-1]=='\n')
str[l-1]=0;
i=0;
/* split string into words*/
token = strtok(str, " \t\r\n");
while( token != NULL )
{
arr[i] = token;
i++;
token = strtok(NULL," \t\r\n");
}
fflush(stdin);
/* check if the first word is quit*/
if (strcmp(arr[0],"quit")==0)
{
printf("Goodbye\n");
go_on = false;
} else {
for (j=0; j < i; j++){
printf("'%s'\n", arr[j]);
}
}
}
}
return 0;
errorfgets:
printf("fgets didn't work correctly");
return -1;
}
这是一个更大的电影 Sprite 程序的一部分,由于某种原因,程序在到达这个 while 循环时崩溃了,我不明白我的问题是什么。 #include #include #include #incl
这个问题已经有答案了: feof detecting false end of file (2 个回答) 已关闭10 年前。 我有一个函数应该读取文件并检测文件何时结束。 该函数当前仅读取倒数第二行并
我之前问过一个不同的问题,但我对这个问题的看法有点偏题,所以我提出了一个新问题,因为我问的是一个完全不同的问题。 我有一个函数可以读取文本文件中的给定行(由 ac 变量给出)。它执行行的读取,然后检查
大家好,我正在编写一个 c 程序,我试图一次从一个文本文件中打印两行,问题是当在最后一行时,如果行是奇数,3 行 5 行。它会打印最后一行两次。我找不到针对这个特定问题的 if 函数的比较。是 boo
这个问题在这里已经有了答案: Why is “while( !feof(file) )” always wrong? (5 个答案) 关闭 5 年前。 我是 C 的新手。我偶然发现了 feof 的某
我正在尝试通过套接字发送文件,方法是一次读取一个字符,直到缓冲区(字符数组)已满,发送它,然后重复直到文件末尾。但出于某种原因,feof 在文件结束前变为真(我相信可能是在缓冲区数组已满时)。 int
我是 C++ 的初学者,正在努力更好地理解 feof()。我读过 feof() 标志仅在尝试读取文件末尾后才设置为 true 很多次初学者如果执行类似 同时(!feof(文件))。不过,我想了解的是,
所以我做了一件简单的事情,首先我通过 ssh2_exec 执行命令(在成功验证后),然后读取变量中的答案。下面是我的代码(没有验证) try { $stdout_stream = ss
This link讲述为什么 feof() 用作循环的退出指示器是一件坏事。 不安全==>在 while 中进行 feof() 检查,并在 while 内进行 fgets() 检查。 安全==>让fg
我的程序中出现错误(应该找到字符和整数文件中的所有整数),其中“feof”不起作用(while循环永远不会结束)或没有读取/找到整数,除非整个文件充满了整数。 我的代码... #include
void suffix_strip(FILE *fp) { FILE *fp1; char word[20],ch; int len; int i=0,j; f
我正在使用 feof 计算文件中的行数,如下所示。完成后,我需要逐行循环遍历同一个文件,并执行另一个取决于行数的操作。但是,while (!feof(f)) 不会在同一个文件流上运行第二次。有没有办法
我有以下枚举和结构: enum Destination { unknown = 0, hosok, parlament, var }; struct Client { char name[30];
我正在使用 fgets(); 从文本文件中读取行 我有一个循环:while(!feof(fp)) 问题是,即使在我到达并读取最后一行之后,程序仍继续进入循环,并且在调试中文件 ptr 仅显示点而不是数
我这里真的有问题。从文件中读取字符时,我似乎并没有真正找到退出循环的最佳方法。我知道每个教程都建议我不应该使用 while( !feof() ) 但他们除了在 while 中放置 fgets() 之外
FILE *test; student st; int i = 0; test = fopen("example.bin", "rb"); while (feof(test)) { fread
我在从文件中读取行时遇到问题。基本上,我的代码多读了一行,所有变量都为“0”,即 如果我的文件是: 0, 0, 3, 64, 0, 0, 0, 0 2, 0, 6, 64, 0, 0, 0, 0 4,
这个问题在这里已经有了答案: Why is “while( !feof(file) )” always wrong? (5 个答案) 关闭 5 年前。 所以我阅读了多篇关于为什么 feof 不能正常
最近几天我一直在处理一个奇怪的 PHP 问题,feof() 函数在文件结束之前返回 true。下面是我的代码的框架: $this->fh = fopen("bigfile.txt", "r");
我打开一个文件,在指针ptr 的地址找到流。我正在尝试查看文件是否为空白。使用以下内容 if (fgetc(ptr) != EOF) 按预期工作。当文件为空时,不执行该语句。当文件不为空时,语句不执行
我是一名优秀的程序员,十分优秀!