- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
int ungetc(int c, FILE *fp)
将字符 c 推回 fp,并返回 c 或 EOF
作为错误。
where as int putc(int c, FILE *fp)
将字符 c 写入文件 fp 并返回写入的字符,或 EOF
表示错误。
//这些是来自K&R的声明。我发现自己很困惑,因为 putc()
可以在 getc
之后使用,并且可以用作 ungetc
。那么专门定义ungetc()
有什么用。
最佳答案
putc
将一些内容写入输出,因此它会出现在屏幕上或您已将输出重定向到的文件中。
ungetc
将一些东西放回输入 缓冲区,所以下次调用 getc
(或 fgetc
等)这就是你会得到的。
您通常使用putc
来写入输出。您通常在读取输入时使用 ungetc
,并且您知道自己已经到达某物结尾的唯一方法是当您读取一个不能成为当前“某物”的一部分的字符时.例如,您正在读取和转换一个整数,您会继续读取数字以外的内容 - 然后您 ungetc
将要处理的非数字字符作为来自流的下一个内容进行处理。
关于c++ - putc 和 ungetc 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6079785/
int writeFile(FILE * handle, char * data, int len) { fseek(handle, 0, SEEK_SET); for(int i=0
以下代码出现段错误....为什么????使用 fputc 尝试的事件 我认为可能有一个我无法理解的愚蠢错误..但没有足够的时间。 请帮忙... #include int main ()
假设我们有一个已经存在的文件,比如说 .此文件已由 C 程序打开以进行更新 (r+b)。我们使用 fseek导航到 内的某个点,除了它的结尾。现在我们开始使用 fwrite/fputc 写入数据.
我将编写一个 Lexical,它将成为内核模块的一部分,我将在其中解析文件并返回标记。为此,我可能需要使用 fopen、getc、putc、fseek 等显然是用户空间函数的函数。我在内核空间中搜索了
我有一个读取输入并将 ascii 字符打印到文件流的方法。 最初它不需要打印到文件,所以我使用了 putchar 并且它工作得很好但现在我使用 putc 或 fputc 它会打印所有其他输入。 示例:
我想将字符串打印到每行中的每个单词。看起来 putc 不起作用,为什么我不能在 C 编程语言中使用 putchar ? #include #include #include void main(
首先我有以下宏 #define MSG_UPDATE_DATA 70 然后用popen打开一个管道 SensServer = popen("./SensServer", "w") ; 在以下使用 pu
以下程序的预期输出是: received REQUEST from client received REPLY from server 例如,这可以在 GNU/Linux 上看到。然而,在 Cyg
我知道Macro implementation of putc() in C , 但在 C++ 中是否相同? 最佳答案 这将取决于您对 cstdio 的实现。在大多数情况下,这实际上只是 stdio.
getc() 与 fgetc() putc() 与 fputc() 它们之间的主要区别是什么? 我听说除了 getc() 可以用作宏之外,这两个函数的作用几乎相同。这是什么意思? 如果它们相同,为什么
我很想知道 putc() 返回什么。我正在浏览以下链接:https://www.tutorialspoint.com/c_standard_library/c_function_putc.htm .现
int ungetc(int c, FILE *fp) 将字符 c 推回 fp,并返回 c 或 EOF 作为错误。 where as int putc(int c, FILE *fp) 将字符 c 写
C 历史问题在这里。为什么 C 函数 putc 需要第二个参数,如 putc( 'c', stdout ) ; 虽然看跌期权更方便 puts( "a string" ) ; msvc++中有一个函数
我看到以前有人问过这个问题,但似乎没有一个答案能解决我的问题。 我正在尝试编写一个函数来读取文件的内容并打印它们。这是我的代码; int main() { int c; fseek(s
我试图从文件中读取每个字符,并单独使用 getc 和 putc 将其打印到屏幕上。这是我的代码, FILE *fp = fopen("new.txt","r+"); rewind(fp); while
我在阅读 Kernighan 的 C 编程书籍时遇到了 putc 和 fputc。我不太明白两者之间的区别,或者什么时候可以用一个代替另一个。我在 StackOverflow 上找到了一些处理这个主题
阅读en.cppreference.com在 fputc()/putc() 上,我偶然发现了以下语句: In C, putc() may be implemented as a macro, whic
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
有谁知道为什么 putchar()、fputc() 和 putc() 的参数类型不是 char,但是putwchar()、fputwc()和putwc()的参数类型是wchar_t?另见 this和
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 6 年前。 Improv
我是一名优秀的程序员,十分优秀!