Переделать ввод с консоли на ввод из файла - C (СИ)
Формулировка задачи:
Здравствуйте! Написала программу, но результат таков: я брала информацию из строки. Мне нужно, чтобы брать информацию из файла, а не из строки. Проверьте, пожалуйста. Заранее спасибо вам!Написать программу, которая считывает во внешний файл текстовую строку и подсчитывает количество пробелов в строке.
#include<stdio.h>
#include<string.h>
int main()
{
char str[100];
printf ("vvedite tekstovyu stroky\n");
gets(str);
int i=0,pr=0;
FILE *FL;
FL=fopen("text.txt","w");
fprintf(FL,"%s",str);
fclose(FL);
while(i<strlen(str)) {
if(str[i]=' ')pr++;
i++;
}
printf("novaya stroka:");
puts(str);
printf("kolichestvo probelov:%d\n",pr);
getchar();
}Решение задачи: «Переделать ввод с консоли на ввод из файла»
textual
Листинг программы
#include <iostream>
#include <algorithm>
#include <functional>
#include <cstring>
#include <cctype>
int main(){
const char * s = "bla bla\tbla ";
std::cout << "String: \"" << s << "\" - " << std::count_if(s, s+strlen(s), std::ptr_fun(isspace)) << " space symbols." << std::endl;
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых заголовочных файлов для работы с консолью, алгоритмами, функциями и строками.
- Объявление переменной
sтипаconst char*со значениемbla bla\tbla. - Вывод на консоль значения переменной
sс помощьюstd::cout. - Использование функции
std::count_ifдля подсчета количества пробельных символов в строкеs. - Передача в функцию
std::count_ifтрех аргументов: начало строкиs, конец строкиs+strlen(s)и указатель на функциюstd::ptr_fun(isspace), которая определяет, является ли символ пробельным. - Вывод на консоль количества найденных пробельных символов с помощью
std::cout. - Возврат значения 0 из функции
main, что означает успешный конец работы программы.