ファイルからいくつかの整数を読み込もうとしています。プログラムはエラーなしでコンパイルされますが、整数は出力されません。
int main(int argc,char *argv[]){
if(argc != 2){
printf("Use %s file_name", argv[0]);
}
else{
char file_name[255];
int df,n=0,v[1000],tmp,i;
strcpy(file_name,argv[1]);
df=open(file_name,O_RDONLY);
while(read(df,tmp,sizeof(n))>0){
v[n++] = tmp;
}
for(i=0;i<n;i++){
printf("%d ",v[i]);
}
}
return 0;}
新しいコード:
int main(int argc,char *argv[]){
if(argc != 2){
printf("Use %s file_name", argv[0]);
}
else{
char file_name[255];
int df,n=0,v[1000],tmp,i;
strcpy(file_name,argv[1]);
if ((df=open(file_name,O_RDONLY) ) < 0) {
perror("Cannot open output file\n"); exit(1);
}
while( n != 1000 && ( read(df,&v[n++],sizeof(*v)) > 0) ){}
for(i=0; i!=n; i++){
printf("%c ",(char)v[i]);
}
}
return 0;
}
ファイルに3文字あるにもかかわらず、3つではなく2つのビットパターンしか表示されない前でも