2014-07-09 2 views
0
void main() 
{ 
    FILE *fp1; 
    char ch; 
    int count = 0; 

    fp1 = fopen("Text.txt","r"); 
    if(fp1==NULL){ 
     printf("Failed to open file. Bye\n"); 
     exit(1); 
    } 
    printf("Text file exists"); 
    fclose(fp1); 

} 

예를 프로그래밍 -이 입력 파일의 첫 번째 문자가 숫자인지 확인하고 싶습니다입력 파일의 첫 번째 문자가 숫자인지 확인하는 방법은 무엇입니까? C 입력 파일 (Text.txt)의

3 
nameA 
nameB 
nameC 

합니다. 누락 된 프로그램 수가 누락 된 경우

+1

해결할 것입니다. 어쩌면 당신은 캐릭터 (프리드)를 읽고 그 가치를 확인할까요? – AntonH

+0

당신이하는 일은 * 그것이 * 숫자라면 당신이하고 싶은 일에 다소 의존합니다. 개인적으로, 나는'fgets' (줄 끝 부분에 줄 바꿈을 남긴다는 것을 조심하십시오.) 파일에서 한줄을 읽은 다음 그 줄의 첫 글자를 검사합니다 (또는 모든 문자가 숫자인지 확인하십시오. 아마도 라인의 시작 부분에 여분의 공백이있을 수 있습니다 ...). 그런 다음'sscanf '를 사용하여 숫자를 정수로 스캔 할 수 있습니다. – ooga

+1

'파일을 열지 못했습니다 .'라는 메시지는 끔찍한 오류입니다. 그 실패의 이유는 무엇입니까? 시도하십시오 (fp1 == NULL) {perror ("Text.txt"); exit (1);}' –

답변

1

ctype.h를 포함하고 유형 검사를 수행하는 함수가 있습니다. 또는 char 값이 적절한 ASCII 범위에 있는지 확인하십시오.

1

이 이미 파일 열기가 문제

void main() 
{ 
    FILE *fp1; 
    char ch; 
    int count = 0; 
    fp1 = fopen("Text.txt","r"); 

    if(fp1==NULL){ 
     printf("Failed to open file. Bye\n"); 
     exit(1); 
    } 
    printf("Text file exists"); 
    ch = fgetc(fp1); 
    if (ch < '0' || ch > '9') { 
     fclose(fp1); 
     printf("Exit: First character is not a number\n"); 
     return;   // first character of the input file is not number so exit 
    } 

    fclose(fp1); 
} 
+1

종료하기 전에 파일을 닫지 않아도됩니까? –

+0

@Dwayne Towell thanks, edited –

+0

@santosh main() 번호가없는 경우 메시지를 표시하고 싶습니다. – user3456889

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

int main(){ 
    FILE *fp1; 
    char ch, line[128]; 
    int count = 0, num; 

    fp1 = fopen("Text.txt","r"); 
    if(fp1==NULL){ 
     printf("Failed to open file. Bye\n"); 
     exit(1); 
    } 
    printf("Text file exists\n"); 
    if(fgets(line, sizeof(line), fp1)){ 
     if(1==sscanf(line, "%d", &num)){ 
      while(num-- && fgets(line, sizeof(line), fp1)){ 
       printf("%s", line); 
      } 
     } else { 
      printf("The beginning of the file is not numeric. Bye\n"); 
      exit(1); 
     } 
    } else { 
     printf("No contents of the file. Bye\n"); 
     exit(1); 
    } 

    fclose(fp1); 
    return 0; 
} 
관련 문제