所以我试图在字符串中获取字符的ASCII值,然后将该ASCII数组值写入文件。同时,我希望输出格式如下:"Hello\n"
以72 101 108 108 111\n
格式而不是
72
101
108
108
111
这就是我现在所拥有的。
int main(int argc, const char *argv[]) {
int out = open("tmp.txt", O_RDWR|O_CREAT, 0600);
if (-1 == out) {
perror("opening tmp.txt");
exit(1);
}
if (-1 == dup2(out, fileno(stdout))) {
perror("cannot redirect stdout");
exit(1);
}
char buff[128];
strcpy(buff, "Hello\n");
int n = 0;
while(buff[n] != '\n') {
fprintf(stdout, "%d\n", (int)buff[n]);
n++;
}
fflush(stdout);
close(out);
return 0;
}
答案 0 :(得分:1)
从\n
移除fprintf
并在while循环后添加\n
:
while(buff[n] != '\n') {
fprintf(out, "%d ", (int)buff[n]);
n++;
}
fprintf(out, "\n");