大家好,我正在做作业,我有问题...我有这两个功能:
1)
int * input()
{
int c;
static int val[17];
int count;
count = 0;
while(((c = getchar()) != EOF) && (count != 16))
{
if(c == '\n') // riesi \n za na konci echa
{
break;
}
val[count] = c;
count++;
}
val[count] = EOF;
count = 0;
return val;
}
</code>
2)
<code>int output_none()
{
int *val;
int count;
int pos = 0;
do
{
val = input();
printf("%08x ", pos);
pos = pos + 16;
count = 0;
//for(int i = 0; val[i] != EOF; i++)
while(val[count] != EOF)
{
printf("%02x ", val[count]);
count++;
if(count == 8)
{
printf(" ");
}
}
if(count < 16)
{
while(count != 16)
{
printf(" ");
count++;
}
}
count = 0;
printf("|");
//for(int i = 0; val[i] != EOF; i++)
while(val[count] != EOF)
{
printf("%c", val[count]);
count++;
}
printf("|\n");
}while(count == 16);
}
</code>
我的问题是输出:回声“你好,世界!Ahoj svete!” | ./proj1
应该是: 00000000 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 20 41 68 |你好,世界!阿| 00000010 6f 6a 20 73 76 65 74 65 21 0a | oj svete!。 |
但我得到的是: 00000000 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 20 41 68 |你好,世界!阿| 00000010 6a 20 73 76 65 74 65 21 | j svete!|
我不知道为什么我的代码在第二轮输入时跳过一些字符...对不起这篇可怕的书面文章...我正在通过手机写它,因为我的笔记本电脑死了,我正在去火车途中学校。感谢。