在linux下怎样用fread函数从输入端读取数据,输入的数据数不确定,就是从从终端想输多少就读多少那种

2024-11-27 16:31:42
推荐回答(2个)
回答1:

用 fgets(buffer, MAXLENTH, stdin)

buffer 为程序里面定义的char类型的数组

MAXLENTH 为buffer的长度 即:sizeof(buffer)

stdin    为标准输入端

这个函数的意思即为, 从标准输入端获得 MAXLENTH 长度的字符串,存入buffer 

fread的原型为  fread(buffer,size,count, fp) 它只能获取二进制文件,如果你想用它 

你就需要在终端输入 000101011010110101010101010101101010011   你看着办吧~~~~~ 

图中为linux中二进制的存储形式

回答2:

fread()函数就不要想了,根据参数就可以看出,数据量必须由自己提供,不可能达到你所预期的结果,除非是循环读取。
倒是getline()函数可以试试,它能够自动申请所需内存。
注:getline()是gnu扩展函数,不是c++提供的那东东。