Строки

  • Автор темы Dareami
  • Дата начала
D

Dareami

#1
Помогите найти ошибки пожалуйста!)
C++:
#include "stdafx.h"
#include <windows.h>
#include <iostream>
#include <stdio.h>

using namespace std;

void Text5(char *fname, char *s);
void Text6(char *fn1, char *fn2);

void main (){
const int N=1024;
char *s = new char [N];

SetConsoleOutputCP (1251);
SetConsoleCP(1251);

cout << "\nCтрока?";
cin.getline(s, N-1);

Text5("1.txt", s);
Text6("2.txt", "1.txt");

delete []s;
}//main

void Text5(char *fname, char *s)
{
FILE *f;
f = fopen(fname, "r+");
if (!f){
cout << "\nОшибка!Файл отсутствует!" << fname<<"\n\n";
return;
}//if
//переход в конец файла
fseek(f, 0, SEEK_END);
//Дописать s в конец файла
fputs (s, f); fputs("\n", f);
//Закончить файл
fclose (f);
}//Text

void Text6(char *fn1, char *fn2)
{
FILE *f, *f2;
//в конец fn1 записать содержимие fn2

f1 = fopen(fn1, "r+");
if (!f2){
cout << "Ошибка!Файл отсутствует! " << fn1 << "\n";
return;
}//if
f2 = fopen (fn2, "r");
if(!f2){
cout << "Ошибка!Файл отсутствует! " << fn2 << "\n";
fclose(f1);
return;
}//if
//переход в конец f1
fseek(f1, 0, SEEK_END);
char *s = new char [1024];
//чтение из f2 и запись в f1
while(fgets(s,1024.f2));
{
fputs(s,f1);
}//while
//закрываем файлы
fclose(f1);
fclose(f2);
}//text
 

hosm

* so what *
18.05.2009
2 442
6
#4
ну, в коде я вижу точку вместо запятой. Или я чего-то не понимаю и не помню?

Добавлено: кстати, а где у Вас ошибка и что за ошибка? :O_0:
 
D

Dareami

#5
А у вас Visual Studio есть что б проверить?
Если нет то щас напишу:
Ошибка 1 error C2065: f1: необъявленный идентификатор d:\visual\text5,6\text5,6\text5,6.cpp 30 text5,6
Вот собственно говоря!(
 

hosm

* so what *
18.05.2009
2 442
6
#6
так тут всё Вам написано, в чем проблема-то? код не Ваш, читать не умеем? :O_0: надо FILE *f1, *f2;
студии нет и пока не предвидится)))
я просто опечатку с точкой заметила, когда форматировала Ваш код тегом code... и написала
 
D

Dareami

#7
теперь в другом месте пишет
Ошибка 1 error C2065: f1: необъявленный идентификатор d:\visual\text5,6\text5,6\text5,6.cpp 31 text5,6
Я как бы не программист)
 

hosm

* so what *
18.05.2009
2 442
6
#8
а я как бы программист, но не сишник)))
посмотрите, что отметила !
остальное не смотрела и не правила, ес-но.
C++:
void Text6(char *fn1, char *fn2)
{
FILE *f1, *f2; // !!!!!!!!!!! f1
//в конец fn1 записать содержимие fn2

f1 = fopen(fn1, "r+");
if (!f1){ // !!!!!!!!!!! f1
cout << "Ошибка!Файл отсутствует! " << fn1 << "\n";
return;
}//if
f2 = fopen (fn2, "r");
if(!f2){
cout << "Ошибка!Файл отсутствует! " << fn2 << "\n";
fclose(f1);
return;
}//if
//переход в конец f1
fseek(f1, 0, SEEK_END);
char *s = new char [1024];
//чтение из f2 и запись в f1
while(fgets(s,1024, f2)); // !!!!!!!!!!  ,
{
fputs(s,f1);
}//while
//закрываем файлы
fclose(f1);
fclose(f2);
}//text
 
D

Dareami

#9
Почему то копирует из 1 файла и записывает в первый, я не знаю в чём я уже тупнул...
Вот мой код:
Код:
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <iomanip>
#include <stdio.h>

using namespace std;

void Text5(char *fname, char *s);
void Text6(char *fn1, char *fn2);

void main (){
const int N=1024;
char *s = new char [N];

SetConsoleOutputCP (1251);
SetConsoleCP(1251);

cout << "\nCтрока?";
cin.getline(s, N-1);

Text5("1.txt", s);
Text6("2.txt", "1.txt");

delete []s;
}//main

void Text5(char *fname, char *s)
{
FILE *f;
f = fopen(fname, "r+");
if (!f){
cout << "\nОшибка!Файл отсутствует!" << fname<<"\n\n";
return;
}//if
//переход в конец файла
fseek(f, 0, SEEK_END);

//Дописать в конец файла
fputs (s, f); fputs("\n", f);

//Закончить файл
fclose (f);
}//Text

void Text6(char *fn1, char *fn2)
{
FILE *f1, *f2;

//в конец fn1 записать содержимие fn2

f1 = fopen(fn2, "r+");
if (!f1){
cout << "Ошибка!Файл отсутствует! " << fn1 << "\n";
return;
}//if
f2 = fopen (fn2, "r");
if(!f2){
cout << "Ошибка!Файл отсутствует! " << fn2 << "\n";
fclose(f1);
return;
}//if[f
//переход в конец f1
fseek(f1, 0, SEEK_END);
char *s = new char [1024];

//чтение из f2 и запись в f1
while(fgets(s,1024,f2))//
{
fputs(s,f1);
}//while

//закрываем файлы
fclose(f1);
fclose(f2);
}//text