簡體   English   中英

奇怪的符號寫在 C 程序的 output.txt 文件中

[英]Weird Symbols Are written in output.txt file of C program

我是 C 的新手,我正在編寫一個程序,它會向用戶詢問字符串並將它們寫入文件。 如果不存在這樣的文件,它將創建該文件,然后開始寫入。

問題是,與輸入字符串一起,奇怪的符號被寫入輸出文件。 我似乎無法弄清楚為什么。 這是我的代碼:

#include<stdio.h> 
#include<unistd.h> 
#include<fcntl.h> 
#include <string.h>
int main()
{
    int fd;
    char buffer[80];
  char str[20];
  int result;
    fd = open("output.txt",O_RDWR);
    if (fd == -1)
    {
     FILE *fp;
    fp  = fopen ("output.txt", "w");    
      fd = open("output.txt",O_RDWR);
    
    }while(1){
    printf("Enter String: \n");
    scanf("%s", str);
    result=strcmp(str,"-1");
    if(result>=0){
      write(fd, str, sizeof(str));
          printf(" %s was written to output.txt \n", str); 
    }else{
      break;
    }
    
    }
        
}

我還附上了我的 output.txt 文件的圖像。 這就是我給出“第一”、“第二”和“第三”作為輸入字符串時所寫的內容。

這就是我給出“第一”、“第二”和“第三”作為輸入字符串時所寫的內容

write(fd, str, sizeof(str));

這會將str的所有 20 個字節寫入文件中。 在存儲到該緩沖區的字符串之后包括任何未初始化的垃圾數據。 改成:

write(fd, str, strlen(str));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM