2013-04-21 6 views
16

के माध्यम से ईओएफ कैसे भेजें I Kआर पुस्तक से उदाहरण 1.9 को समझने की कोशिश कर रहा हूं, लेकिन मुझे ईओएफ भेजने का तरीका नहीं मिलता है। कुछ सूत्रों ने सीआरटी + जेड का उल्लेख किया, लेकिन यह कार्यक्रम को समाप्त कर देता है। मैं किसी भी तरह से एंटर और Ctrl + Z और शायद Ctrl + V के संयोजन के साथ ईओएफ भेजने में कामयाब रहा, लेकिन मैं इसे पुन: पेश नहीं कर सकता।विंडोज टर्मिनल

#include <stdio.h> 
#define MAXLINE 1000 

main() 
{ 
    int len; 
    int max; 
    char line[MAXLINE]; 
    char save[MAXLINE]; 

    max = 0; 
    while((len = getline_my(line, MAXLINE)) > 0) 
    if(len > max) { 
     max = len; 
     copy(line, save); 
    } 
    if(max > 0) 
     printf("%S", save); 
} 

getline_my(s, lim) 
char s[]; 
int lim; 
{ 
    int c, i; 

    for(i=0; i < lim-1 && (c = getchar()) != EOF && c != '\n'; i++)// As long as the condition is fulfilled 
     s[i] = c; 
    if (c == '\n') { 
     s[i] = c; 
     i++; 
    } 
    s[i] = '\0'; 
    return(i); 
} 

copy(s1, s2) 
char s1[]; 
char s2[]; 
{ 
    int i; 

    i = 0; 
    while((s2[i] = s1[i]) != '\0') 
     i++; 

} 
+0

CTRL डी? –

+2

दुर्भाग्यवश –

+0

जो यूनिक्स के लिए नहीं था .. ये cmd http://ss64.com/nt/syntax-keyboard.html –

उत्तर

40

आप के साथ CTRL+D (* के लिए nix) या CTRL+Z (Windows के लिए) कमांड लाइन से EOF अनुकरण कर सकते हैं।

+1

यह मेरे लिए काम नहीं करता (विंडोज 10 + एनाकोंडा टर्मिनल) लेकिन @mauriceShun प्रदान किया गया जवाब किया था। – MrMas

+0

@MrMas वे वही बात कहते हैं: | – DarkWiiPlayer

4

विधवाओं में, जब आप इनपुट को पूरा करने के लिए तैयार होते हैं, तो Enter कुंजी दबाएं और फिर Ctrl+Z दबाएं और फिर Enter इनपुट को पूरा करने के लिए दबाएं।

int main(){ 
    char ch[100];  
    scanf("%[^EOF]",ch);  
    printf("\nthe string is:\n%s\n",ch);  
    fflush(stdin);  
    return 0;  
    } 
+0

'स्कैनफ ("% [^ ईओएफ] ", सी);' और 'एफएफएलश (एसडीडीएन); 'खराब हैं। – BLUEPIXY