Pare um loop for quando o usuário terminar de inserir a entrada em c
Antes de tudo, obrigado pela assistência!
Eu sou novo na linguagem C (e programação em geral) e estou tentando escrever um programa em que o usuário insira pontos de dados. Os pontos de dados são salvos em uma matriz onde podem ser manipulados.
Onde estou preso: quero que o usuário possa inserir (quase) qualquer número de pontos e, em seguida, use uma espécie de 'palavra-chave' para sinalizar o final da entrada de dados. Nesse caso, o usuário digitaria 'concluído'.
Aqui está o que eu tenho até agora:
#include <stdio.h>
#include <string.h>
int main(void) {
printf("\n Welcome! \n\n Please enter each data point. Enter 'done' when finished.\n\n");
double data[1048];
int i, count;
for (i = 1; ;i++) {
printf("Data[%i]: ", i);
scanf("%lf", &data[i]);
if (data[i] == 'done') {
break;
} else {
count++;
}
}
}
Eu tentei 'retornar 1;' e 'quebrar;'. Cada vez, o programa funciona bem até que a 'palavra-chave' seja inserida; nesse momento, recebo:
Data[8]: Data[9]: ... Data[1120]: Data[1Segmentation fault 11
A única vez que funciona é se eu o interrompo quando o usuário digita um número específico (como -1 ou 0). Mas isso não funciona muito bem para o usuário, pois ele pode precisar inserir esses números como pontos de dados.
Desculpe pelo longo post, mas agradeço a ajuda!