Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2009, 19:51   #1
M1ham
 
Регистрация: 26.03.2009
Сообщений: 5
По умолчанию Программа записывающая в начало файла какой-либо символ

Доброго времени суток =)
Помогите пожалуйста написать программу на Си(не Си++)
следующего пллана:
Имеется на диске файл txt в нем записаны 10 чисел
написать программу записывающую в начало файла произвольный символ задаваемый с клавиатуры...
Создавать доп массив нельзя.
Заранее благодарен.
M1ham вне форума Ответить с цитированием
Старый 30.03.2009, 20:00   #2
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Пишие свой код, если не получиться - пишите сюда. Иначе никто вам ничего не напишет.
MaTBeu вне форума Ответить с цитированием
Старый 30.03.2009, 20:05   #3
oleg kutkov
Unix C++ developer
Форумчанин
 
Аватар для oleg kutkov
 
Регистрация: 16.04.2007
Сообщений: 651
По умолчанию

Просто скопируйте исходный файл в другой - временный файл, потом запишите в исходный файл в первую позицию нужный Вам символ, затем допишите все остальные символы из временного файла, удалите временный файл.
oleg kutkov вне форума Ответить с цитированием
Старый 30.03.2009, 20:38   #4
oleg kutkov
Unix C++ developer
Форумчанин
 
Аватар для oleg kutkov
 
Регистрация: 16.04.2007
Сообщений: 651
По умолчанию

Ну хотя бы вот так...:
Код:

#include <stdio.h>  //подключаем необходимые заголовчные файлы
#include <stdlib.h>

int _tmain(int argc, _TCHAR* argv[])
{
	FILE *wFile, *tFile; //указатели на "рабочий" и временный файлы
	char buf; //буферная символьная переменная
	if(!(wFile = fopen("one.txt", "r"))) { //пытаемся открыть исходный файл для чтения
		printf("Невозможно открыть файл one.txt, программа завершена...");
		return 1;
	} 
	if(!(tFile = fopen("temp.txt", "w"))) { //пытаемся открыть временный файл для записи
		printf("Невозможно создать временный файл, программа завершена...");
		return 2;		
	}
	for(int fc = 0; fc < 10; fc++)  //копируем содержимое файла
		fputc(fgetc(wFile), tFile);

	fclose(wFile); fclose(tFile); //закрываем файлы
	
         //предлагаем ввести символ с клавиатуры
	printf("Пожалуйста введите символ для записи в файл:"); 
	buf = getchar();
	
        //снова пытаемся открыть оба файла, но уже в других режимах
	if(!(wFile = fopen("one.txt", "w"))) { 
		printf("Невозможно открыть файл one.txt, программа завершена...");
		return 1;
	} 	
	if(!(tFile = fopen("temp.txt", "r"))) {
		printf("Невозможно создать временный файл, программа завершена...");
		return 2;		
	}
	
	fputc(buf, wFile); //отправляем в файл символ, введенный с клавы
	
	for(int fc = 0; fc < 10; fc++)  //дописываем содержимое
		fputc(fgetc(tFile), wFile);
	
	fclose(wFile); fclose(tFile); //закрываем файлы
	
	system("del temp.txt"); //удаляем временный файл

		return 0;
}
oleg kutkov вне форума Ответить с цитированием
Старый 30.03.2009, 21:57   #5
M1ham
 
Регистрация: 26.03.2009
Сообщений: 5
По умолчанию спасибо

Большое спасибо.
Можете пояснить фразу
int _tmain(int argc, _TCHAR* argv[])
M1ham вне форума Ответить с цитированием
Старый 31.03.2009, 04:10   #6
Peter20
 
Регистрация: 31.03.2009
Сообщений: 6
По умолчанию

Цитата:
Сообщение от M1ham Посмотреть сообщение
Можете пояснить фразу
int _tmain(int argc, _TCHAR* argv[])
микрософт и не такое придумать может
Peter20 вне форума Ответить с цитированием
Старый 31.03.2009, 08:32   #7
oleg kutkov
Unix C++ developer
Форумчанин
 
Аватар для oleg kutkov
 
Регистрация: 16.04.2007
Сообщений: 651
По умолчанию

Цитата:
Сообщение от M1ham Посмотреть сообщение
Большое спасибо.
Можете пояснить фразу
int _tmain(int argc, _TCHAR* argv[])
Это то же самое, что int main(int argc, char *argv[])
Главная функция программы, с которой (для программиста) начинается выполнение программы. В моем случае функция имеет такой вид из-за того, что я делал пример в 2008 вижуал студии и при создании проекта выбрал режим генерации "каркаса" консольного приложения.
Замените это на вышеуказанную форму. Работать будет и на Windows и на Linux.
oleg kutkov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить матрицу B[1..N-1,1..M-1] из матрицы A[1..N,1..M] удалением какой-либо х-той строки и k-го столбц kempers Помощь студентам 2 18.12.2008 10:53
после выбора в comboBOX какой либо пункт он должен выводить данные в таблице KingSize БД в Delphi 2 09.12.2008 19:05
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51
Как к какой либо букве привезать определенное действие? LuMax Помощь студентам 4 25.11.2007 14:06