@Gagatyn
Самоучка

Как посчитать сумму чисел в файле?

char buff[11]; 
float a=0;
        ofstream file;
	file.open("C:/Users/Desktop/test.txt");
	file << "0123456789";
	file.close(); //создал, открыл, записал, закрыл

	ifstream fin("C:/Users/Desktop/test.txt"); // открыл для чтения

	fin >> buff; // считали первое слово из файла
	cout << buff; // напечатали это слово

	fin.getline(buff, 11); // считали строку из файла
	fin.close(); // закрываем файл
   for (int i = 0; i < 11; i++){
		a +=  buff[i];
		cout << buff[i] << "\t" << a << endl;
	}

Как посчитать их, как их записать в переменные? "а" выводит полную ерунду, большие числа. Как работать с ними?
  • Вопрос задан
  • 4025 просмотров
Решения вопроса 1
@Mercury13
Программист на «си с крестами» и не только
Пока вижу вот что.
1. a += buff[i]; Вы суммируете коды символов, а не их числовые значения. Правильно a += buff[i] - '0';

2. Эти строки дублируют друг друга.
fin >> buff;
  fin.getline(buff, 11);

Сначала получаем 0123456789, потом файл кончился и на место 0 записываем нулевой символ (NUL).

3. for (int i = 0; i < 11; i++) — неуниверсальная конструкция. Плюс цифр в строчке всего 10, поэтому надо i < 10.

4. Так сумму чисел или сумму цифр?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы