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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 07.03.2009, 22:44   #1
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию Непонятно откуда берущиеся символы

написал програмку

Код:
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>

void main()
{
char a[100];
FILE *f= fopen("test.txt","at");
gets(a);
int n = strlen(a);
a[n]='\n';
n++;
fputs(a,f);
fclose(f);

}
ТРижды запустил ее, ввел последовательно слова:
Vasiliy
Ivanovich
Pupkin

Проблема:
В полученом текстовом файле (открываю блокнотом) перед словом "Ivanovich" присутствует квадратик (какой-то символ такой), который, однако, не копируется.

Написал програмку, которая печатает этот файл, она выводит на печать:

Vasiliy
♂Ivanovich
Pupkin

Код програмки:
Код:
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>

void main()
{
clrscr();
char a[100];
char *p;
FILE *f= fopen("test.txt","rt");
fgets(a,100,f);
if(p){
int n=strlen(a);
long int pos=ftell(f);
printf(a,n);
fgets(a,100,f);
printf(a,n);
fgets(a,100,f);
printf(a,n);
fclose(f); }
else{cout<<"error";}

getch();

}
Собственно в этом загадочном символе проблема.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума
Старый 07.03.2009, 22:50   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Измените вот так:
Код:
a[n]='\n';
n++;
a[n]='\0';
- добавление символа конца строки
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 07.03.2009, 22:55   #3
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Спасибо, как-то я упустил этот момент.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
непонятно StasSv Microsoft Office Excel 1 26.02.2009 14:16
откуда ошибка 183? vl1639 Общие вопросы Delphi 4 17.01.2009 01:11
СИМВОЛЫ - помогите решить задачу на символы kiko Паскаль, Turbo Pascal, PascalABC.NET 5 30.11.2008 16:09
что то непонятно sergei64_89 Общие вопросы C/C++ 9 25.05.2008 16:58
Инициализация массива указателей. Непонятно !!! Adamant Общие вопросы C/C++ 2 05.11.2007 16:22