read()无法正常工作

时间:2015-06-29 14:40:24

标签: c visual-studio-2010 io

我正在尝试使用read()读取txt文件并打印输出。

文本文件包含以下数字:

123
456 
227

我的代码如下所示

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

int main(int argc, char*argv[]){
    char* input;
    char* output;
    int fd;
    int temp = 0;




if(argc != 3){
        printf("Too Many or Too Few Arguments\n");
        exit(-1);
    }
    input = argv[1];
    output = argv[2];

    fd = open(input,O_RDONLY,0);
    if(fd == -1){
        printf("Read Failed");
        exit(-1);
    }
    while(read(fd, &temp ,sizeof(int)) != 0){
        printf("%d\n", temp);
    }
    close(fd);
}

我尝试运行它,这是输出

221458993
909456394
842150410
842150455

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您需要执行formatted I/O才能获得int值表示。

fscanf()或更好,fgets()是您的朋友。