Khác biệt giữa fgets() và gets()

Tại sao dùng fgets và gets kết quả lại khác nhau? Khi dùng fgets thì output của em bị xuống 1 dòng, còn gets thì ko sao.

#include<iostream>
#include<stdio.h>
#include <string.h>
using namespace std;

void chuanhoa(char c[])
{
	for(int i=0;i<strlen(c);i++)
		c[i] = tolower(c[i]);
}

int main(){
	char str[100];
//	gets(str);	
//	fgets(str,60,stdin);
	char *token = strtok(str," ");
	int n=0;
	char a[100][100];
	
	while(token != NULL){
		strcpy(a[n],token);
		n++;
		token = strtok(NULL," ");
	}
	
	chuanhoa(a[n-1]);
	cout<<a[n-1];
	
	for(int i=0; i<n-1;i++){
		chuanhoa(a[i]);
		cout<<a[i][0];
	}
	
	cout<<"@edu.vn";
	return 0;
}

Đọc tài liệu đi bạn:
http://www.cplusplus.com/reference/cstdio/gets/
Các khác biệt đã được nêu rõ.

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?