Написать программу, которая из командной строки получает целое число N и
некоторый текст “Text”. Как результат программа должна создать N файлов
(file_1.txt, …, file_N.txt) в каждом из которых написано, “Hello world I”, где
значение I совпадает с значением номера файла
C/C++
В LINUX OS Написать программу, которая из командной строки получает целое число N и некоторый текст “Text”.
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <cstring>
using namespace std;
void app_end(char * a, char * end)
{
int i = strlen(a);
int j = strlen(end);
for(int x = 0; x < j; x++)
{
a[i + x] = end[x];
}
a[i + j] = '\0';
}
void reverse_a(char * a)
{
int i = strlen(a);
char a2[i+1];
for(int x = 0, y = i; x < i && y > 0; x++)
{
a2[y-1] = a[x];
y--;
}
a2[i] = '\0';
for(int x = 0; x < i; x++)
{
a[x] = a2[x];
}
}
void itoa(char * a, int i)
{
int x = 0;
while(i > 0)
{
a[x++] = (i % 10) + '0';
i /= 10;
}
a[x] = '\0';
reverse_a(a);
}
int main(int argc, char * argv[])
{
if(argc < 3)
{
cerr << "В командной строке нужны 2 параметра: число и текст." << endl;
return 1;
}
int N = atoi(argv[1]); // принимаем первый параметр командной строки
for(int x = 0; x < N; x++)
{
char file_name[100];
strcpy(file_name,argv[2]); // принимаем 2-й аргумент ком. строки
char tmp[20];
tmp[0] = '_';
char a[20];
itoa(a,x+1);
int i = 1;
for(;i <= strlen(a); i++)
{
tmp[i] = a[i-1];
}
tmp[i] = '\0';
app_end(file_name,tmp);
char tmp2[] = ".txt";
app_end(file_name,tmp2);
ofstream os;
os.open(file_name);
if(os.is_open() && !os.fail())
{
os << "Hello ";
os << (x + 1);
os.close();
}
}
return 0;
}
#include <fstream>
#include <cstdlib>
#include <cstring>
using namespace std;
void app_end(char * a, char * end)
{
int i = strlen(a);
int j = strlen(end);
for(int x = 0; x < j; x++)
{
a[i + x] = end[x];
}
a[i + j] = '\0';
}
void reverse_a(char * a)
{
int i = strlen(a);
char a2[i+1];
for(int x = 0, y = i; x < i && y > 0; x++)
{
a2[y-1] = a[x];
y--;
}
a2[i] = '\0';
for(int x = 0; x < i; x++)
{
a[x] = a2[x];
}
}
void itoa(char * a, int i)
{
int x = 0;
while(i > 0)
{
a[x++] = (i % 10) + '0';
i /= 10;
}
a[x] = '\0';
reverse_a(a);
}
int main(int argc, char * argv[])
{
if(argc < 3)
{
cerr << "В командной строке нужны 2 параметра: число и текст." << endl;
return 1;
}
int N = atoi(argv[1]); // принимаем первый параметр командной строки
for(int x = 0; x < N; x++)
{
char file_name[100];
strcpy(file_name,argv[2]); // принимаем 2-й аргумент ком. строки
char tmp[20];
tmp[0] = '_';
char a[20];
itoa(a,x+1);
int i = 1;
for(;i <= strlen(a); i++)
{
tmp[i] = a[i-1];
}
tmp[i] = '\0';
app_end(file_name,tmp);
char tmp2[] = ".txt";
app_end(file_name,tmp2);
ofstream os;
os.open(file_name);
if(os.is_open() && !os.fail())
{
os << "Hello ";
os << (x + 1);
os.close();
}
}
return 0;
}
Похожие вопросы
- Написать программу, которая выводит числа из файла с текстом и числами. С++
- Написать программу, которая сравнивает число перестановок элементов при использовании сортировки «пузырьком» (усовершенс
- Помогите написать программу по теме "Строки" на языке C.
- Рекурс.функцию, которая принимает 2х-мерный массив целых чисел и кол-во сдвигов и выполняет круговой сдвиг массива влево
- Написать программу, которая по введенному значению аргумента вычисляет значение функции, заданной в виде
- Написать программу, которая по выбору пользователя меняет цвет консольного приложения C++
- Напишите программу, которая выводит таблицу факториалов от 1 до 10. c++
- Напишите программу, которая подсчитает и выведет количество слов длины 10, которые можно составить из букв a, b, c.
- Даны две обыкновенные дроби(введено пользователем). Написать программу которая делит первую дробь на вторую.
- С++ Максимум трёх чисел Даны три целых числа. Найдите наибольшее из них (программа должна вывести ровно одно целое число