gpt4 book ai didi

c - fwrite 不打印任何东西到标准输出

转载 作者:行者123 更新时间:2023-12-05 03:15:24 26 4
gpt4 key购买 nike

当我运行这个小代码并在控制台上输入 3 个整数时,由于 fwrite 语句,它没有按应有的方式打印出来。只有在我连续按回车键一段时间后,它才会打印出来。帮助?P.S:学习速度比 scanf 和 printf 更快。

#include<stdio.h>
int main(){
int size[3];
fread(&size,sizeof(int),3,stdin);
fwrite(&size,sizeof(int),3,stdout);
fflush(stdout);
return 0;
}

最佳答案

这是因为 fread 读取二进制数据,而不是格式化文本,所以当您告诉它读取 3 个“整数”时,它将从标准输入读取 3*4=12 字节的原始数据。如果您键入“1”“2”“3”,那只有三个字节的文本,外加三个换行符。一旦您键入 12 个字节,它可能会通过该部分,但如果您想要读写实际文本,那么您的程序可能会崩溃。

您的意思是您正在“学习比 scanf 和 printf 更快的方法”。好吧,这不是更快的方法,它只是一种损坏的方法。如果您在使用 scanf 和 printf 的某些代码中遇到性能问题,请提出一个单独的问题,我们可以提供帮助。

关于c - fwrite 不打印任何东西到标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17259250/

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