「/textwrite/data を読み込み、各行の内容を整数値にし、 その値を出力するプログラムを読み込んだ値ではなく、読み込んだ値が0だった回数を表示するプログラムに書き換える。また、0だけでなく、0から255までの各値について回数を数え表示するプログラムに書き換える。」という問題なのですが、0から255までの各値の回数のほうがわかりません。
処理結果は
1:○○
2:○○
の形で出力するように指定がありました。
C
1#include <fcntl.h> 2#include <stdio.h> 3#include <stdlib.h> 4#include <unistd.h> 5 6int main(int argc, char *argv[]) { 7 const int fd = open("../textwrite/data", O_RDONLY, 0); 8 if (fd < 0) { 9 perror("open"); 10 exit(0); 11 } 12 13 char str[256]; 14 int len = 0; 15 char c; 16 17 while (1) { 18 const int l = read(fd, &c, 1); 19 if (l == 0) 20 break; 21 if (l < 0) { 22 perror("read"); 23 exit(0); 24 } 25 26 if (c == '\n') { 27 str[len] = '\0'; 28 int n = atoi(str); 29 printf("%3d\n", n); 30 len = 0; 31 continue; 32 } 33 34 str[len++] = c; 35 } 36 37 close(fd); 38 39 return 0; 40}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/17 02:44