한 파일에서 다른 파일로 각 줄에서 특정 수의 문자를 복사하는 방법

케얀 파야 즈

그래서 저는 3 개의 명령 줄 인수, 1. 기존 파일의 이름, 2. 새 파일의 이름, 3. 각 줄에서 새 파일로 복사 할 문자 수를 사용하는 프로그램을 작성하려고합니다.

지금까지 내가 가지고있는 것은 다음과 같습니다.

int main(int argc, char *argv[]) {

    int size = atoi(argv[3]); // The number of characters to copy 
    char content[size];
    char line[size];

    FILE *f1 = fopen(argv[1], "r"); // Read from first file                                                          
    FILE *f2 = fopen(argv[2], "w"); // Write to second file                                                          

    if (f1 == NULL || f2 == NULL) {
        printf("\nThere was an error reading the file.\n");
        exit(1);
    }

    while (fgets(content, size, f1) != NULL) {
        // This is what I had first:
        fprintf(f2, "%s", content);                                                                                 

        // And when that didn't work, I tried this:
        strncpy(line, content, size);
        fprintf(f2, "%s", line);                                                                                           
    }

    fclose(f1);
    fclose(f2);
    return 0;
}

미리 감사드립니다!

KA Buhr

문제는 fgets작동 방식 입니다. 다음 줄의 끝 이나 최대 size문자 중 먼저 오는 쪽 을 읽도록 설계되었습니다 . 이 읽는 경우 size개행 문자를 읽기 전에 문자를, 그 반환 size다음으로 읽어 들여, - 길이 문자열을하지만, 입력 스트림에서 행의 나머지 잎 fgets호출! 따라서 size10이면 루프는 10 자 단위로 긴 행을 읽지 만 한 번에 10 자씩 전체 행을 출력합니다.

현재 프로그램의 구조를 유지하려면 트릭을 사용 fgets하여 전체 줄을 읽고 ( size가능한 가장 긴 줄보다 긴 값을 사용하여 ) 줄 바꿈이 있으면 제거하고 줄을 다음 줄로 자릅니다. n문자 (NUL- 종료)를 입력하고 단축 된 줄을 인쇄합니다.

힌트로 충분합니까, 아니면 실제 예제를 원했습니까?

편집 : 좋아, 여기에 하나의 작업 솔루션이 있습니다.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char line[4096];

int main(int argc, char *argv[]) {

    int size = atoi(argv[3]); // The number of characters to copy

    FILE *f1 = fopen(argv[1], "r"); // Read from first file
    FILE *f2 = fopen(argv[2], "w"); // Write to second file

    if (f1 == NULL || f2 == NULL) {
        printf("\nThere was an error reading the file.\n");
        exit(1);
    }

    // read whole line
    // note: if the whole line doesn't fit in 4096 bytes,
    // we'll be treating it as multiple 4096-byte lines
    while (fgets(line, sizeof(line), f1) != NULL) {

        // NUL-terminate at "size" bytes
        // (no effect if already less than that)
        line[size] = '\0';

        // write up to newline or NUL terminator
        for (char* p = line; *p && *p != '\n'; ++p) {
            putc(*p, f2);
        }
        putc('\n', f2);

    }

    fclose(f1);
    fclose(f2);
    return 0;
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

파일의 각 줄에서 특수 문자로 특정 문자열을 추출하는 방법

분류에서Dev

Unix를 사용하여 파일의 각 줄에서 특정 문자열에 대한 검색 횟수를 얻는 방법은 무엇입니까?

분류에서Dev

파일의 특정 줄에서 다른 특정 줄로 에코하는 방법

분류에서Dev

한 파일에서 다른 파일로 텍스트를 복사 한 다음 텍스트 문자열의 첫 글자를 대문자로 바꾸는 방법

분류에서Dev

파일에서 특정 문자열 뒤의 모든 줄을 삭제 한 다음 파이썬을 사용하여 더 많은 줄을 추가하는 방법

분류에서Dev

한 파일에서 상수를 정의하고 angularjs의 다른 파일에 액세스하는 방법

분류에서Dev

Java에서 한 문자열에서 다른 문자열로 특정 단어를 복사하는 방법

분류에서Dev

GREP 또는 SED를 사용하여 한 파일에서 다른 파일로 특정 텍스트 복사

분류에서Dev

Linux에서 특정 확장자를 가진 파일을 한 디렉토리에서 다른 디렉토리로 복사하는 방법

분류에서Dev

Grep을 사용하여 한 파일에서 다른 파일로 일치하는 수를 찾는 방법

분류에서Dev

한 파일에서 다른 파일로 특정 문자 이동

분류에서Dev

한 파일의 행에서 각 특정 항목을 찾는 Python은 다른 파일의 행에 있습니다.

분류에서Dev

파일 이름에서 한 문자를 다른 문자로 바꾸는 방법

분류에서Dev

C # 사용 .txt 파일의 특정 줄에서 특정 문자 (위치 기준)를 변경하는 방법

분류에서Dev

다른 파일에서 파일의 각 줄에 한 필드를 입력하여 결과를 통합합니다.

분류에서Dev

csv 파일에서 한 줄의 문자 수를 계산하는 방법

분류에서Dev

iOS의 한 .m 파일에서 다른 .m 파일로 문자열 값을 전달하는 방법

분류에서Dev

파일을 한 줄씩 읽고 파이썬의 각 줄에서 문자열을 얻는 방법

분류에서Dev

한 폴더에서 다른 폴더로 특정 파일의 dataframe에 포함 된 내용을 복사하는 방법

분류에서Dev

특정 유형의 모든 파일을 폴더에서 Python의 다른 폴더로 복사하는 방법

분류에서Dev

각도기에서 하나의 js 파일에서 다른 js 파일로 2 개의 다른 함수를 내보내는 방법

분류에서Dev

파일 목록에서 wget 다운로드 파일, 다운로드 한 각 파일의 이름을 지정하는 방법은 무엇입니까?

분류에서Dev

특정 확장자를 가진 동일한 파일을 터미널의 다른 디렉토리에 복사하는 방법

분류에서Dev

MATLAB에서 한 Excel 파일의 셀을 다른 파일로 복사하는 방법

분류에서Dev

Shell : 파일에서 소문자 단어를 선택하여 정렬 한 후 다른 파일로 복사

분류에서Dev

다른 파일의 파일에서 세 번째 열 (특정 문자까지)을 바꾸는 방법

분류에서Dev

한 줄로 bash에서 특정 확장자의 파일 목록을 얻는 방법은 무엇입니까?

분류에서Dev

두 개의 다른 txt 파일에서 숫자를 정렬 한 다음 하나의 txt 파일로 저장하는 방법

분류에서Dev

한 파일에서 다른 파일의 줄에없는 문자열 찾기

Related 관련 기사

  1. 1

    파일의 각 줄에서 특수 문자로 특정 문자열을 추출하는 방법

  2. 2

    Unix를 사용하여 파일의 각 줄에서 특정 문자열에 대한 검색 횟수를 얻는 방법은 무엇입니까?

  3. 3

    파일의 특정 줄에서 다른 특정 줄로 에코하는 방법

  4. 4

    한 파일에서 다른 파일로 텍스트를 복사 한 다음 텍스트 문자열의 첫 글자를 대문자로 바꾸는 방법

  5. 5

    파일에서 특정 문자열 뒤의 모든 줄을 삭제 한 다음 파이썬을 사용하여 더 많은 줄을 추가하는 방법

  6. 6

    한 파일에서 상수를 정의하고 angularjs의 다른 파일에 액세스하는 방법

  7. 7

    Java에서 한 문자열에서 다른 문자열로 특정 단어를 복사하는 방법

  8. 8

    GREP 또는 SED를 사용하여 한 파일에서 다른 파일로 특정 텍스트 복사

  9. 9

    Linux에서 특정 확장자를 가진 파일을 한 디렉토리에서 다른 디렉토리로 복사하는 방법

  10. 10

    Grep을 사용하여 한 파일에서 다른 파일로 일치하는 수를 찾는 방법

  11. 11

    한 파일에서 다른 파일로 특정 문자 이동

  12. 12

    한 파일의 행에서 각 특정 항목을 찾는 Python은 다른 파일의 행에 있습니다.

  13. 13

    파일 이름에서 한 문자를 다른 문자로 바꾸는 방법

  14. 14

    C # 사용 .txt 파일의 특정 줄에서 특정 문자 (위치 기준)를 변경하는 방법

  15. 15

    다른 파일에서 파일의 각 줄에 한 필드를 입력하여 결과를 통합합니다.

  16. 16

    csv 파일에서 한 줄의 문자 수를 계산하는 방법

  17. 17

    iOS의 한 .m 파일에서 다른 .m 파일로 문자열 값을 전달하는 방법

  18. 18

    파일을 한 줄씩 읽고 파이썬의 각 줄에서 문자열을 얻는 방법

  19. 19

    한 폴더에서 다른 폴더로 특정 파일의 dataframe에 포함 된 내용을 복사하는 방법

  20. 20

    특정 유형의 모든 파일을 폴더에서 Python의 다른 폴더로 복사하는 방법

  21. 21

    각도기에서 하나의 js 파일에서 다른 js 파일로 2 개의 다른 함수를 내보내는 방법

  22. 22

    파일 목록에서 wget 다운로드 파일, 다운로드 한 각 파일의 이름을 지정하는 방법은 무엇입니까?

  23. 23

    특정 확장자를 가진 동일한 파일을 터미널의 다른 디렉토리에 복사하는 방법

  24. 24

    MATLAB에서 한 Excel 파일의 셀을 다른 파일로 복사하는 방법

  25. 25

    Shell : 파일에서 소문자 단어를 선택하여 정렬 한 후 다른 파일로 복사

  26. 26

    다른 파일의 파일에서 세 번째 열 (특정 문자까지)을 바꾸는 방법

  27. 27

    한 줄로 bash에서 특정 확장자의 파일 목록을 얻는 방법은 무엇입니까?

  28. 28

    두 개의 다른 txt 파일에서 숫자를 정렬 한 다음 하나의 txt 파일로 저장하는 방법

  29. 29

    한 파일에서 다른 파일의 줄에없는 문자열 찾기

뜨겁다태그

보관