C의 배열에 문자열과 정수를 저장하는 방법

Jodzy

문자열과 정수로 구성된 외부 파일 (.dat)을 다음 형식으로 읽으려고합니다.

문자열 1

문자열 2

문자열 3 등

그리고 이러한 값을 별도의 배열에 저장합니다 (하나는 문자열 용, 다른 하나는 정수용). 그러나 파일의 첫 번째 정수만 할당 할 수 있으며 모든 후속 정수와 존재하는 문자열은 할당되지 않습니다. 이 부분에 대한 내 코드는 다음과 같습니다.

char string[20]; /*20 is used as a placeholder for the time being*/
int integer[20];
FILE *inp2; /*pointer to input file 2*/    
int file_succeed1 =  fopen_s(&inp2,"C:\\Users\\input2b.dat", "r"); /*Boolean test*/
if (file_succeed1 != 0)
{
    printf_s("There was an error opening the file \n");
    return 0; /*The file failed to be read, end of program.*/

}



for(i = 0; i <=20; i++)
{
    fscanf_s(inp2, "%s", &string[i], 20);
    fscanf_s(inp2, "%d", &integer[i]);
}


fclose(inp2); /*close the input file*/

정보를 인쇄하려고 할 때 경고 메시지가 나타납니다.

경고 C4477 : 'printf': 형식 문자열 '% s'에는 'char *'유형의 인수가 필요하지만 가변 인수 1에는 'int'유형이 있습니다.

경고 C4313 : 'printf': 형식 문자열의 '% s'가 'int'유형의 인수 1과 충돌합니다.

정수로만 구성된 외부 파일의 값을 읽고 할당했지만이 경우 문자열이나 후속 정수를 할당하는 방법을 알 수 없습니다. 어떤 도움이라도 대단히 감사합니다. 감사합니다.

참고 : 다차원 배열을 사용하지 말라고 명시 적으로 조언했지만 병렬 배열은 괜찮습니다.

조나단 레플러

밝히다:

char string[20][20];

다음을 사용하여 읽기 :

if (fscanf_s(inp2, "%s %d", string[i], 20, &integer[i]) != 2)
    …report error and break loop…

최대 20 개의 정수를 읽으려면 20 개의 문자열도 필요하며 각 문자열에는 여러 문자를위한 공간이 필요합니다. 2D 문자 배열을 사용하는 것은 매우 간단하며 포인터를 이해할 필요가 없습니다. 제안 된 코드는 두 개의 개별 호출을 fscanf_s()하나로 대체 합니다. 완벽하게 처리 할 수 ​​있습니다. I / O 작업 (특히 입력 작업)이 성공했는지 항상 확인하십시오. 참고 fscanf_s()EOF 또는 1 (명목상 0)뿐만 아니라 2를 반환하지만, 성공을 나타냅니다 만이 할 수있다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

입력 한 문자열과 정수를 C로 저장하는 방법

두 정수를 하나의 배열에 저장하는 방법 (C ++)

파일에 숫자 문자열을 C의 배열에 별도의 정수로 저장하는 방법

문자열 배열의 문자열을 C의 변수에 저장하는 방법

c의 문자열에 숫자를 저장하는 방법

짝수 인덱스에 저장된 문자열과 3의 배수 인 인덱스에 저장된 트리플 문자열을 이중화하는 방법

plt.bar의 결과를 배열에 저장하는 방법

C ++의 문자열 배열에서 정수를 추출하는 방법

신속하게 문자열의 숫자를 정수로 저장하는 방법

문자열 배열의 요소를 C의 구조체에 저장하는 방법은 무엇입니까?

결과 집합에서 배열 목록에 2 개의 정수를 저장하는 방법 및 검색 방법

문자열 배열 Java에서 특수 문자를 정의하는 방법

C#에서 문자열 배열의 구성 요소를 별도로 저장하는 방법

print 함수()의 결과를 af 문자열에 포함하기 위해 변수에 저장하는 방법

C의 팩토리얼 알고리즘 : 이전 반복의 결과를 문자열에 저장하는 방법?

for 루프를 수정하는 방법 JavaScript의 문자열 배열에 결과가 표시되지 않습니다.

datepicker의 값을 문자열 변수에 저장하는 방법

C에서 float 배열의 상위 인덱스를 가져오고 다른 배열에 저장된 문자열과 쌍을 이루는 방법

문자열 배열에 저장된 특정 문자열을 문자열 배열의 ArrayList로 인쇄하는 방법은 무엇입니까?

문자열의 일부를 사전에 저장하는 방법

R의 문자열에 특수 문자를 저장하는 방법

C#에서 문자열 배열의 문자 수를 계산하는 방법

C ++ argv를 벡터에 문자열로 저장하는 방법

문자열의 고유 한 문자를 저장하는 방법

목록에 저장된 numpy 배열의 열을 수정하는 방법

함수의 출력을 배열에 저장하는 방법

토큰 화 된 문자열을 C의 배열에 저장하는 방법

C의 배열에 정수를 저장하는 함수 호출

데이터베이스의 정수 배열 형식 결과를 C #의 배열에 저장하는 방법은 무엇입니까?