2016-06-23 5 views
0
#include<stdio.h>  
int main() 
{  
    FILE *opening; 
    opening = fopen("hello.usr","w"); 
    fprintf(opening,"Hello world!");  
    fclose(opening); 
    printf("Writing to the file was successful.\n"); 
    printf("Closing the program"); 
    return 0; 
} 

이 코드를 사용하여 C 프로그래밍에서 파일을 만들고 "Hello world!"텍스트를 작성했습니다. 그 안에. 이 코드의 문제점은 무엇입니까?프로그래밍에서 파일을 만들고 hello world를 파일에 작성하십시오.

+0

프로그램이 정상적으로 작동해야하며 정상적으로 작동해야합니다. 네가 얻는 문제는 뭐니? – mik1904

+0

"프로그램의 출력이 예상보다 짧습니다"라는 오류 메시지가 나타납니다. – user9123

+0

미안하지만, 나는 이런 종류의 문제를 겪어 본 적이 없다. – mik1904

답변

3

대신 "W"지금 현재로는 fopen

+0

사실 저는 온라인 C 프로그래밍 과정을 진행하고 있으며이 프로그램을 작성했습니다."Hello world!"텍스트를 인쇄하는 프로그램을 작성하십시오. 파일 "hello.usr"에 넣습니다. 파일이 존재하지 않으므로 파일을 만들어야합니다. 마지막으로, 프로그램은 파일 쓰기가 성공했음을 나타내는 메시지를 화면에 인쇄해야합니다. 파일에 인쇄 된 텍스트는 할당과 정확히 일치해야합니다. 출력 예 : * 파일에 쓰기가 성공했습니다. 프로그램 닫기 * 두 답변을 모두 시도했지만 컴파일러에서 "출력이 예상보다 짧습니다"라는 오류가 표시됩니다. 내가 지금 무엇을 할 수 있을까? – user9123

+0

' "출력이 예상"''보다 짧습니다? 이것은 매우 이상합니다. 당신의 컴파일러는 무엇입니까? –

+0

잘 모르겠습니다. 이것은 출력과 과제를 비교하는 코스에서 제공하는 온라인 컴파일러입니다. – user9123

0

시도의 결과를 확인 잘못이 무엇인지 알고 싶다면, 당신은 여부를 알 수없는 당신은 그 파일에 쓸 것인지 말 것인지를 결정 했으므로 그것을 점검하는 제안이 여기에 있습니다. 그래도 코드가 존재하지 않는 경우에도 파일에 기록하려고합니다 여기에 당신이 세그먼트 오류에 대한 옵션을 제거 0을 반환하여

FILE *opening; 
opening = fopen("hello.usr", "w"); 
if (opening == NULL){ 
    perror("fopen"); 
    return 0; 
} 

.

+0

여전히 같은 오류입니다. – user9123

+1

공개 후 출력 print prinrf ("ernno : % d \ n", errno); 출력 공유 – crn

1

에서 "중량"사용 fopen

opening = fopen("hello.usr","w"); 
if (opening == NULL) { 
    perror("fopen"); 
} 
1

가장 확실하게 얻는 오류 메시지는 컴파일러에서 생성되지 않습니다. 제출 된 솔루션의 정확성을 검사하는 자동 검사 프로그램의 메시지로 보입니다.

출력이 과 정확히 일치해야합니다 (정확히).

메시지 :

프로그램의 출력은 새로운 라인 문자 ('\ n')에 뭔가 문제가 있음을 나타낼 수 있습니다 예상

보다 짧습니다. 그것들을 확인하십시오. 예를 들어

필요한 출력 인 경우 :

파일에 쓰기 성공했습니다. 프로그램 닫기.

... 한 줄로 인쇄하면 첫 번째 문장 뒤에 새 줄이 생기므로 결과가 분명히 일치하지 않습니다. 그리고 검사자가 새 줄 문자의 첫 번째 발생에 대해 검사하면

파일에 성공적으로 기록됩니다.

이는 많은 가능한 설명 중 하나 일 수 있습니다. 이 경우 단순히 시도 :

#include<stdio.h>  
int main() 
{  
    FILE *opening; 
    opening = fopen("hello.usr","w"); 
    fprintf(opening,"Hello world!");  
    fclose(opening); 
    // printf("Writing to the file was successful.\n"); 
    // printf("Closing the program"); 
    printf("Writing to the file was successful. Closing the program\n"); 
    return 0; 
} 

참고도 (자동 테스트 환경에서) 오류 메시지의 종류는 일반적으로 ommited에 의해 촉발되어, 추가 또는 혼동 인쇄 할 수없는 문자 (공백, 탭, 새로운 라인을 추가) 또는 구두점을 알아 내기 어렵습니다.

이 점을 고려하여 파일에 인쇄 할 텍스트를 확인할 수도 있습니다.

관련 문제