在C中转换为字节

时间:2016-12-09 02:14:32

标签: c

我的老师开发了一个生成随机字符和数字的服务器。我需要创建一个程序来获取生成的内容并将其置于标准输入表单中,并使用sizeof()运算符查找字节数。此外,如果文件的随机结束发生,那么它应该生成一个消息以及已经通过了多少字节。我是一名基本的编码员,需要对我的程序有一点帮助,因为我不知道从哪里去修复我的错误。

#include <stdlib.h>
#include <stdio.h>

int main () {
  int input;
  int sum;
  int size;

  do {
    size = sizeof(input);
    sum =+ size;
    input = 0;
  } while (scanf("%c", &input)!=EOF);

  if (EOF) {
    printf("Random End of File Has Occured.\n%d Bytes Have Been Received.", sum);
  }

  else {
    printf("End of Transmission Completed.\n%d Bytes Have Been Received.", sum);
  }
  return 0;
}

以下是我需要它的示例: Example

267.625293748653
5233.717459639272
29779
6489
3579.434430982391
28896
8834
3152.852412488174
25321
8320
28836
8875.864858351391
9539.445326098274
3859.598437452315
12345
195.324900951882
25139
22473
595.885992279732
2765.982421338542
6554.456891649837
5822.693258461257
9979.479628894926
193.095583971679
9349.095348739159
7462

Read 447 bytes from standard input
C:\Users\Brett\Downloads\hw2 (1)>

1 个答案:

答案 0 :(得分:1)

您需要修理两件事。

  1. 在开始向sum = 0;添加尺寸之前,您需要初始化sum += size;。你现在的方式是sum变量已经用垃圾初始化,因为它在堆栈上。实际上,您正在为垃圾值添加已知大小。

  2. 您的代码未将size添加到sum。您需要将sum =+ size;更改为sum += size;

  3. 希望这有帮助!