많은 마법이 관련되어 있지 않습니다. 실제로 코드가 무엇인지 알 수있는 충분한 코드를 표시하지는 않지만이 코드는 argv[1]
및 argv[2]
에 지정된 파일을 엽니 다.
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
{
if (argc != 3)
{
fprintf(stderr, "Usage: %s file1 file2\n", argv[0]);
return 1;
}
char *dot1 = strrchr(argv[1], '.');
if (dot1 == 0 || strcmp(dot1, ".csv") != 0)
{
fprintf(stderr, "%s: file %s is not a CSV file\n", argv[0], argv[1]);
return 1;
}
FILE *fp1 = fopen(argv[1], "r");
if (fp1 == 0)
{
fprintf(stderr, "%s: failed to open %s for reading\n", argv[0], argv[1]);
return 1;
}
char *dot2 = strrchr(argv[2], '.');
if (dot2 == 0 || strcmp(dot2, ".csv") != 0)
{
fprintf(stderr, "%s: file %s is not a CSV file\n", argv[0], argv[2]);
return 1;
}
FILE *fp2 = fopen(argv[2], "w");
if (fp2 == 0)
{
fprintf(stderr, "%s: failed to open %s for writing\n", argv[0], argv[2]);
return 1;
}
char buffer[1024];
size_t nbytes;
while ((nbytes = fread(buffer, sizeof(char), sizeof(buffer), fp)) != 0)
fwrite(buffer, sizeof(char), nbytes, fp2);
fclose(fp1);
fclose(fp2);
return 0;
}
오류 체크 fclose(fp2)
; 실패하면 출력 파일이 성공적으로 작성되지 않습니다. 일반적으로 fclose(fp1)
오류를 검사하는 것이 덜 중요합니다.
오류보고 기능을 사용하면 오류보고 블록이 4 개가 아닌 한 줄씩 처리되지만 그 작업을 수행하는 기능을 작성하는 것은 처리 할 준비가 된 것보다 약간 복잡합니다. . 근본적으로 더 복잡하지는 않지만, 내가 당신에게 과부하를주지 않을 정도로 충분합니다. 이 코드는 매우 장황하다.
코드에서는 C99 또는 C11이 있다고 가정하므로 함수의 임의의 지점에서 변수를 선언 할 수 있습니다. C89가 닥친다면 (a) 25 년 대신에 15 년 밖에되지 않는 표준을 사용할 수있는 곳으로 업그레이드 할 때입니다. (b) 모든 변수 선언을 다음과 같이 이동해야합니다. 함수의 맨 위와 초기화로 할당을 할당으로 변경합니다.
작동하지 않는 실제 코드를 게시하십시오. 여기에 당신의 긴 줄을'! strcmp (argv [2] + i, ".csv")로 대체 할 수 있습니다. –
링크입니다! 전체 프로그램! 기본적으로 나는 cs 파일을 작성하는 것보다 cvs 파일을 사용하여 광고 작성을합니다. http://www.speedyshare.com/JaA7S/VEGLEGES-vegleg.txt – user3724530
분명히 그 사이트에서 콘텐츠를 얻으려면 .exe를 다운로드해야합니다. Mac에서'.exe '가 작동하지 않는다는 사실과는 별개로, 이처럼 사소한 것으로 다운 로더가 필요한 사이트는 사용하지 않을 것입니다. –