Переделать ввод с консоли на ввод из файла - 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
, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д