gpt4 book ai didi

c - 无法在文本文件中正确写入数据

转载 作者:太空宇宙 更新时间:2023-11-04 03:43:04 24 4
gpt4 key购买 nike

我写了下面的程序在一个文件中打印 200 个随机数:

int main() 
{
FILE * fp;
fp = fopen ( "myfile.txt", "w" ) ;
if ( fp == NULL )
{
printf ( "Unable to create file." ) ;
exit ( 0 ) ;
}

int i, noofr=200, j ;

for ( i = 0 ; i < noofr ; i++ )
{
j = rand ()%100 ;
fwrite ( &j, sizeof ( int ), 1, fp ) ;
printf ( "%d\t", j ) ;
}

fclose ( fp ) ;

printf ( "\nFile is created. \nPress any key to continue." ) ;

return 0;

}

在控制台上数字打印正确,但在文件中,我看到:

) C " E N : > @ - Q = [ _ * $ [ 5 \ R _ / G & E
C c # ^ ! I @ ) 5 D / , > 9 % ; ) N # Z * X ( * @ 0 .
Z F 2 ] 0 T 6 8 ( B L
, ' % & R ) ! ' : M
I V - H F M I a V Z = $ 7 C 7 J 4 2 2 ) B [ % 9 W 5 S - : X . D [ > 7 ; % 0 S _ ) 2 [ $ J ` 0 c D T Q " 5 c & X C ] 0 S

我正在使用 visual studio 2010 在 windows 7 32 位上运行上述程序。

这里有什么问题?

最佳答案

fwrite函数将内存块写入文件,在这种情况下,您的内存块是二进制形式的整数。例如十进制整数314,159 ( 4CB2F<sub>16</sub> ) 以 32 位大端格式将作为十六进制数字存储在内存中:

+----+----+----+----+
| 00 | 04 | CB | 2F |
+----+----+----+----+

因此,将该内存块写入文件通常不会导致人类可读的任何内容,除非您有一个不寻常的数字,如 1348565002175661392 (取决于字节顺序)。

为了以人类可读的格式编写整数,您只需使用 fprintf非常类似于您使用它打印到标准输出的方式:

fprintf (fp, "%d\t", j);
printf ("%d\t", j ) ;

关于c - 无法在文本文件中正确写入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26970207/

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