Надо для мой программы написать ввод котрый состоит из ключевого слова, а после слова будут значения, и почему то значения не вписываются в переменную, почему? пример ввода:
get_c 10 457 8
#include <stdio.h>
#include <stdlib.h >
#include <string.h>
#include <math.h>
#include <locale.h>
#pragma warning(disable : 4996)
int proverka(char *y) {
int com1[] = { 'g', 'e' , 't', '\_', 'c', '\0' }, com2[6] = { 'g', 'e', 't', '\_', 'a', '\0' }, com3[] = { 'l', 'c', 'g', '\0' }, com4[] = { 't','e','s','t','\0' };
//printf("%c", y[4]);
for (int i = 0; i < 5; i++) {
if (y[i] == com1[i]) {
if (y[4] == 'c') return 1;
if (y[4] == 'a') return 2;
}
if (y[i] == com3[i]) {
return 3;
}
if (y[i] == com4[i]) {
return 4;
}
else return -1;
}
}
int main(){
setlocale(LC_ALL, "Rus");
FILE* in, *out;
in = fopen("input.txt", "r");
out = fopen("output.txt", "w");
char y[81], per[80];
fscanf(in, "%s", y);
fgets(per, 80, in);
int i=0, flag = 0;
while (y[i++] != 0 && i < 81) { //считывает из скольки букв состоит слово
flag++;
}
if (flag > 5 || flag <3) {
printf("inncorect");
}
else {
//printf("%d\n", flag);
int x = proverka(y);
if (x == 1) { //get_c
long long cmax = 0, cmin = 0, m = 0;
while (!feof(in)) {
fscanf(in, "%lld", &cmax); //не считывает числа которые ввожу
fscanf(in, "%lld", &cmin);
fscanf(in, "%lld", &m);
}
if ((cmin < 0) || (cmax < 0) || (m < 0)) {
printf("inncorect");
}
printf("%lld %lld %lld", cmax, cmin, m);
printf("\nyes\n");
}
if (x == 2) { //get_a
}
if (x == 3) { //lcg
}
if (x == 4) {//test
}
if (x == -1) {
printf("\ninncorect");
}
}
fscanf(in, "%s", y); fgets(per, 80, in);— вы уже считали строку полностью, что вы еще хотите из нее считать?... Не к вопросу, но за такоеwhile (!feof(in))джунам копчик массируют! – Harry Jul 20 '22 at 15:24fscanf(in,"%s %lld %lld %lld",y,&cmax,&cmin,&m);– Harry Jul 20 '22 at 15:28