如何解决如何通过提供重复选项来执行代码?
在此代码中,不允许执行第一个代码,因为如果用户进一步想要执行并再次重复该过程,我希望它提供一个选项。第二件事是,如果用户键入 y 进行进一步保存,我想一次又一次将其保存在 CSV 文件中。
提供选项的代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int allowmain(void) {
char select_option[2];
int answer = -1;
while (answer < 0) {
printf("Do you want it to repeat (y/n)? ");
if (fgets(select_option,2,stdin) == NULL)
break;
switch (select_option[0]) {
case 'y':
answer = 1;
break;
case 'n':
answer = 0;
break;
}
}
if (answer < 0)
answer = 0;
return answer;
}
要执行的代码
int main() {
FILE *fw = fopen("new.csv","a");
char data[3][21],input[20];
int done = 0,repeat = 0;
while (!done) {
if (repeat) {
if (!allowmain())
break;
}
repeat = 1;
for (int i = 0; i < 3; i++) {
printf("Enter a word: ");
fgets(data[i],20,stdin);
}
fprintf(fw,"%s %s %s",data[0],data[1],data[2]);
return 0;
}
}
解决方法
最简单的方法是将main函数提取到自己的函数中。您可以在执行过程中包装该函数,并且只要allowmain
返回true即可继续运行:
void write_words() {
FILE * fw = fopen("new.csv","a");
char data[3][21],input[20];
for (int i=0; i<3; i++) {
printf("Enter a word: ");
fgets(data[i],20,stdin);
}
fprintf(fw,"%s %s %s",data[0],data[1],data[2]);
fclose(fw);
}
int main() {
do {
write_words();
} while (allowmain());
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。