programing

새 줄 없이 C를 삽입합니다.

skycolor 2023. 6. 11. 10:33
반응형

새 줄 없이 C를 삽입합니다.

나는 현재 콘솔에 텍스트 파일을 인쇄하는 이 프로그램을 가지고 있지만, 모든 줄은 그 아래에 추가적인 새로운 줄을 가지고 있습니다. 만약 텍스트가

안녕 세계

그것은 헬로를 출력할 것입니다.

세계

코드는 이것입니다.

#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    FILE* fp;
    char input[80], ch = 'a';
    char key[] = "exit\n";
    int q;

    fp = fopen("c:\\users\\kostas\\desktop\\original.txt", "r+");

    while (!feof(fp)) {
        fgets(input, 80, fp);
        puts(input);
    }
    fclose(fp);

    return 0;
}

일반적으로 새 줄을 생략하려면 puts() 대신 fputs()를 사용합니다.당신의 코드에서,

puts(input);

다음이 될 것입니다.

fputs(input, stdout);

puts() 라이브러리 사양으로 새 줄 문자를 추가합니다.사용할 수 있습니다.printf대신 형식 문자열로 인쇄할 내용을 제어할 수 있습니다.

printf("%s", input);

사용자 지정 풋 기능을 작성할 수도 있습니다.

#include <stdio.h>

int my_puts(char const s[static 1]) {
    for (size_t i = 0; s[i]; ++i)
        if (putchar(s[i]) == EOF) return EOF;

    return 0;
}

int main() {
    my_puts("testing ");
    my_puts("C puts() without ");
    my_puts("newline");

    return 0;
}

출력:

testing C puts() without newline

이렇게 하면 됩니다.

#include<stdio.h>
void put_s(char* s){
    while(*s) putchar(*s++);
}

더 많은 예를 들어보자면, 여기 재귀와 관련된 또 다른 예가 있습니다.

#include<stdio.h>
void put_s(char* s){
    if(!*s) return;
    putchar(*s);
    put_s(s+1);
}

참고: 당신의 코드가 컴파일되지 않는다는 것을 알았습니다.#include<iostream>그리고using namespace std;.

언급URL : https://stackoverflow.com/questions/17238784/c-puts-without-newline

반응형