C 如何以编程方式检查输入是否包含点?
我需要检查用户输入是否包含点,以及是否按了回车键。(C 如何以编程方式检查输入是否包含点?,c,for-loop,input,printf,C,For Loop,Input,Printf,我需要检查用户输入是否包含点,以及是否按了回车键。(文本。[输入]) 若确实如此,则不要将该行写入文件并退出,否则继续输入并将该行写入文件 以下是到目前为止我拥有的代码: 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!
文本。[输入]
)
若确实如此,则不要将该行写入文件并退出,否则继续输入并将该行写入文件
以下是到目前为止我拥有的代码:
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?
}
}
不要关闭你没有打开的文件。在验证名称不包含点的循环之后使用文件,如下所示:
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
我需要继续使用scanf,如果它没有找到点。我需要
程序运行,直到找到点为止。这就是为什么我用其他的
正如前辈所写,你不需要一个else语句。您只需要将
scanf()
和所有其他内容包装在一个循环中,例如。g
while (scanf("%20s", name) != EOF)
{
…
}
如果可以成功完成for循环,则不需要else语句,这意味着在输入中找不到点。您想对文件执行的任何操作都可以在for循环之后执行。当
scanf
返回用户已按enter键的信息时,否则scanf
调用将无限期阻塞。是否允许使用string.h
中定义的函数strchr()
?去玩它:)@iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii。我需要程序运行,直到找到点为止。这就是为什么我用else。我把名字写进文件。fprintf(文件“%s\n”,名称);