Работа със струни

Функцията fputs() има следния синтаксис:

Тази функция записва данни ред по ред във файл или извежда на принтер, но не добавя код за "нов ред". За да може всеки ред да бъде записан на диск (или отпечатан на принтер) наистина като отделен ред, трябва ръчно да въведете кода за "нов ред". Например, следната програма създава файл с имена:

puts("Не може да се отвори файл");

printf("Искате ли да въведете друго име?");

Цикълът while продължава, докато знакът n не бъде въведен в отговор на подканата. В този цикъл името се въвежда от клавиатурата с помощта на функцията gets(), след което името се записва на диска с помощта на функцията fputs(). След това във файла се записва код "нов ред" и накрая програмата пита потребителя дали иска да продължи да въвежда имена.

Ако вашият компилатор може да използва функцията strlen(), можете малко да опростите процедурата за въвеждане, като използвате следните инструкции:

printf("Моля, въведете име: ");

printf("Моля, въведете име: ");

Знаците, които въвеждате на клавиатурата, се присвояват на променливата за низ на името и след това се проверява дали дължината на низа е 0. Ако клавишът Enter се натисне веднага при подканата, низът ще има нулева дължина и цикълът ще спре. Ако поне един знак е въведен преди да бъде натиснатEnter, низът и кодът за нов ред ще бъдат записани на диска.

Някои компилатори ви позволяват допълнително да опростите алгоритъма за въвеждане на низове, например по следния начин:

printf("Моля, въведете име: ");

printf("Моля, въведете име: ");

където въвеждането на низ се извършва вътре в условието while.

За да отпечатате низ на принтера, вместо да го запишете на диск, използвайте иметофайл "prn". За да отворите файл, трябва да посочите:

if ((fp = fopen("prn", "w")) == NULL)

За да създадете програма за печат, дължината на реда е зададена на 81 знака, така че редът да може да се побере на цялата ширина на екрана, преди да бъде натиснат клавишътEnter. Списък 12.2 е код, който демонстрира как може да се напише прост текстов процесор. Низът не се изпраща на принтера, докато не бъде натиснат клавишътEnter, което позволява на клавишаBackspaceда коригира грешки при въвеждане на низ.

Списък 12.2. Програмата за извеждане на ред към печатащо устройство.