2015-12-09 2 views
0

Мне нужно проверить, содержит ли пользовательский ввод точку и если нажать клавишу ввода. (Text text text .[Enter])Как проверить программно, если вход содержит точки (точки)?

Если это так, не записывайте эту строку в файл и выходите, иначе продолжайте вводить и записывайте строку в файл.

Вот что код, который я до сих пор:

FILE *File; 
char *fileName = argv[1]; 
char *ptr; 
char name[20]; 

File = fopen(fileName, "r"); 
scanf("%s", name); 
fprintf(File, "%s\n", name); 
for (ptr = name; *ptr!= '\0'; ptr++) 
{ 
    if (*ptr == '.') 
    { 
     printf("Exit"); 
     fclose(File); 
     exit(0); 
    } 
    else 
    { 
     // How to make user continue to input and write to file? 
    } 
} 
+2

Вам не нужен оператор else, если вы можете успешно закончить цикл for, что означает, что во входных точках нет точек. все, что вы хотите сделать с файлом, может идти после цикла for. – ForeverStudent

+0

Когда 'scanf' возвращает вас * lnow *, что пользователь нажал клавишу ввода, в противном случае вызов' scanf' будет блокироваться бесконечно. –

+0

Можно ли использовать функцию 'strchr()', определенную в 'string.h'? –

ответ

0

Не закрывайте файл, который вы не открыли его. Используйте файл после петли, которая проверяется, что имя не содержит точек (открыть его, написать в нем, и закрыть его), как это:

char *ptr; 
char name[20]; 
FILE *f; 
scanf("%s", name); 
printf("%s\n", name); 
for (ptr = name; *ptr!= '\0'; ptr++) { 
    if (*ptr == '.') { 
    printf("Exit"); 
    exit(0); 
    } 
} 
f = fopen(name,"w"); // open for writing 
if (f==NULL) { fprintf(stderr,"Can't open the file\n"); exit(1); } 
fprintf(f,"Hello"); // write something 
fclose(f); // close after using the file 
+0

Я пишу имя в файл. fprintf (Файл, "% s \ n", имя); – MeChris

+0

Но вы не дали нам весь код ... –

0

мне нужно продолжать использовать зсапЕ если он сделал не найти точку. Мне нужна программа для запуска до тех пор, пока она не найдет точку. Вот почему я использую еще.

Как писал ForeverStudent, вам не нужно заявление еще. Вам просто нужно обернуть scanf() и все остальное в цикле, например. г.