Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
3 / 3 / 4
Регистрация: 27.07.2012
Сообщений: 24
1

При выводе на печать полученной строки некорректно отображаются последние символы

02.08.2012, 02:04. Показов 811. Ответов 3
Метки нет (Все метки)

Написал функция, боюсь не самую изящную, но не в этом дело.
Суть функции: получает массив, содержащий число, преобразует число к виду "testчисло.dat".
При выводе на печать полученной строки некорректно отображаются последние символы.
Если у кого есть предложение по более грамотной реализации данной функции, буду благодарен.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>
#include <string.h>
#include <Windows.h>
 
char *numbToFName(char []);
 
void main()
{
    char numb[3];
 
    system("chcp 1251");
 
    scanf("%s", numb);
    
    printf("%s\n", numbToFName(numb));  
}
 
char *numbToFName(char numb[])
{
    char fName[20] = "";
 
    strcat(fName, "test");
    strcat(fName, numb);
 
    return strcat(fName, ".dat");
}
Миниатюры
При выводе на печать полученной строки некорректно отображаются последние символы  
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.08.2012, 02:04
Ответы с готовыми решениями:

При выводе строки string в консоль, символы написанные кириллицей отображаются неправильно
Программа не работает как надо с кириллицей в строке типа string. Суть программы: определение...

Отображаются лишние символы при выводе массива символов
#include &lt;iostream.h&gt; #include &lt;string.h&gt; // для функций str*...

Некорректно отображаются русские символы при вводе в консоль
#include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;iostream&gt; using namespace std; int...

При отсылке письма через SMTP русские символы отображаются некорректно
Люди. Понимаю что уже много написанно, но всё же... - У меня Delphi XE 2 - Нужно отправить...

3
593 / 531 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
02.08.2012, 02:18 2
здесь ошибка заключается в том, что strcat возвращает указатель на переданную строку. в вашем случае данная строка уничтожается до вывода, т.к находится в локальной области. для эксперимента можете вынести строку в глобальную область и перезапустить программу.

ПС: а чо 2 символа для цифры? - как-то мала.

Цитата Сообщение от M9ICKO Посмотреть сообщение
Если у кого есть предложение по более грамотной реализации данной функции, буду благодарен.
пожалуйста. sprintf как раз создана для таких ситуаций.
C
1
2
3
4
5
6
7
    char s[20] = "";
 
    int n = 10;
 
    sprintf(s,"data%d.dat", n);
 
    puts(s);
на выходе получим data10.dat
1
3 / 3 / 4
Регистрация: 27.07.2012
Сообщений: 24
02.08.2012, 13:10  [ТС] 3
ПС: а чо 2 символа для цифры? - как-то мала.
Да, сначала 10 ставил, потом в спешке корректировал, 2 поставил...


А как рациональнее сделать обратную задачу: например, из строки "data10.dat" получить интовское число 10?
0
593 / 531 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
02.08.2012, 15:01 4
M9ICKO,
C
1
2
3
4
5
    char s[20] = "data10.dat";
 
    int n = 0;
 
    sscanf(s, "data%d.dat", &n);
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.08.2012, 15:01

При выводе обычной строки, вывод осуществляется некорректно
#include &lt;iostream&gt; using namespace std; int main() { cout &lt;&lt; &quot;Я познаю мир\n&quot;; return 0; }

Некорректно отображаются символы в консоли
Как настроить вывод символов, чтобы консоль не переносила часть слова или числа?

Кодировка, некорректно отображаются русские символы
Прошу прощения за созданную тему, я прочитал закрепленную тему, и так и не смог решить свою...

Некорректно отображаются русские символы в UTF-8
Это не столько проблема, сколько вопрос из любопытства. У меня есть сайт на CMS Modx Revolution....

В теме Tempera некоторые символы некорректно отображаются
Добрый день. В теме Tempera некоторые символы некорректно отображаются. Символ лупы(?) в поиске,...

Лишние символы новой строки при выводе из файла
Здравствуйте! При выводе из файла печатаются лишние символы новой строки. Подскажите, пожалуйста,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.